繁体   English   中英

Redux中的选择器-React组件了解Redux状态意味着什么?

[英]Selectors in Redux - What does it mean for a React Component to know about redux state?

选择器(除其他原因外)用于隐藏组件的状态。 这句话正确吗?

假设我有2个减速器

当前用户:

{ 
  currentUserId: 'abc'
}

全部用户

{ 
  byId: {
  {
   abc: {
         name: "John"
         age: 21
        }
   def: {
         name: "Dave"
         age: 51
        }
   ghi: {
         name: "Gunners"
         age: 98
        }
  }
},
  allIds : ['abc','def','ghi'] //this is a list; users have a certain order, that is preserved here
}

说我现在想得到一些派生状态。 我将使用选择器,以便我的组件不必直接处理reducers状态。 这(除了记忆/表现)是选择器背后原理的一部分,对吗? 因此,我实现了一个选择器,该选择mapStateToProps用户返回我的mapStateToProps函数。

但是:现在我的组件仍然必须知道用户对象的外观? 例如,存在obj.nameobj.age那么关于状态的了解方式和地点从何处开始以及在何处结束? 或者,或者,更可能是我推测,我在这里误解了什么?

我对您的问题感到困惑。 不能评论...使用选择器是一个好主意,因为它可以使代码更易于管理,或者您只需要状态中更具体的内容即可。

例如,如果您有一个包含已读和未读通知的通知约简,则可以创建一个选择器,该选择器将处理删除已读通知,因此您只能显示未读通知。

因此mapStateToProps将推送给它的任何内容。 从选择器返回的所有内容都将被推入组件的props。

如果您希望它仅知道姓名和年龄,则可以轻松地做到这一点,而无需创建单独的选择器。

// taking into consideration the code you posted

const mapStateToProps = (state) => ({
    users: state.allUsers.byId
})

现在mapStateToProps将只知道名称和年龄。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM