我现在已经在多个地方阅读过,访问动作创建者的状态是一种反模式。 Dan Abramov has said
在行动创建者中,通常访问状态是反模式, 您应尽可能避免这种情况。
我最近发现自己处于以下情况。我有 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
}
我也从Dan Abramov / Redux中学到的byId /allIds
结构
现在说我要调度以下操作:
export const getNextActiveUser = () => {
return {
type: "NEXT_USER"
};
};
好吧,我需要将currentUserId
更新为def
。但是,如果我在def
中找到abc
的位置并增加索引,则只能得到allIds
。只有这样,我才能更新我的其他减速器。
我不了解如何在不访问动作创建者中的状态的情况下执行此操作。有什么建议吗?