反模式:在Reducer中访问状态?如何处理相互依赖的减速器?

时间:2019-08-06 12:49:38

标签: javascript reactjs redux react-redux flux

我现在已经在多个地方阅读过,访问动作创建者的状态是一种反模式。 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。只有这样,我才能更新我的其他减速器。

我不了解如何在不访问动作创建者中的状态的情况下执行此操作。有什么建议吗?

0 个答案:

没有答案