【发布时间】:2020-03-03 00:34:40
【问题描述】:
在当前的应用程序中,我设置了多个 redux reducer 来存储数据。让我们称它们为“user-reducers”和“pet-reducers”。这两个非常相似,它们都有一个帖子[]。现在,每当用户喜欢帖子 [] 中的帖子时,就会触发一个动作“likeDone”。现在我有 2 种选择来实现 redux 更新:
选项 1:“user-reducers”和“pet-reducers”都听“likeDone”。 IMO,这在后期阶段效率低下,因为我有更多类似的减速器并且所有这些减速器都列在一个动作中。
选项 2:将“likeDone”更改为 2 个更明确的操作,例如。 'likeUserPostDone' 'likePetPostDone' 每个reducer都会对匹配的动作做出反应。这样,reducer 更新似乎更有效,但稍后会有更多操作类型,最终会出现大量“switch - case”,我不确定这是否是一个好习惯。
感谢阅读,请告诉我最适合我的情况。
【问题讨论】:
-
任何reducer都不应该影响其他基于Action类型的reducer。为其他人定义不同的动作类型。
-
@VahidAkhtar 好的,谢谢,那就是选项 2。
-
嗯@OzanBulut 发送的主题似乎与您的评论相矛盾。您能否进一步说明为什么应该像您所说的那样?
-
@VahidAkhtar ??? reducer 不应该有副作用,(&& 相互影响),它们应该只返回状态。减速器仅根据动作类型而变化。当 FETCH_SUCCESS 时,我修改了我的 waitForData 减速器和我的数据减速器。我的 UI 隐藏了微调器并显示了数据。当 FETCH_FAIL 时,我隐藏微调器并显示错误
标签: reactjs redux reducers redux-actions