Redux具有多个减速器,强制每个调度动作进入减速器

时间:2017-05-23 06:47:26

标签: redux react-redux

我将react + redux与多个reducer一起使用 我发现每个减速器都会通过每个减速器,尽管这个动作只有一个相关的减速器。

是否有一个选项可以强制每个已发送的操作仅转到其reducer?
如果没有 - 为什么?当然我误解了一些事情。

2 个答案:

答案 0 :(得分:1)

我没有足够的分数来标记它,但这看起来像重复,请参阅:

Why a dispatch to a reducer causes all reducers get called?

All reducers will be invoked when an action is dispatched?

简短的回答 r:这是正常的和有意的,没有这样的选项来阻止它,因为当你有一个复杂的状态树时,你不必关心计算和检查需要什么手动更改,这是redux的作用,除非你有一个巨大的应用程序,性能不会成为问题(reducers通常只是简单的多行纯函数)。

如果您担心表现,请查看另一个问题中提及的https://github.com/reactjs/reselect

答案 1 :(得分:0)

根据Redux FAQ entry on "calling all reducers",您实际上只有一个根减速器功能。 如果你使用内置的combineReducers函数生成了根减速器,那么是的,它将始终运行你为每个调度的动作提供的所有切片减速器,因为这就是{ {1}}有效。

如果您想要其他行为,可以为您的特定用例编写自己的reducer逻辑。有关组织减速器逻辑的各种方法的更多信息,请参阅Redux docs section on "Structuring Reducers"

相关问题