[英]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.name
和obj.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.