我将react + redux与多个reducer一起使用
我发现每个减速器都会通过每个减速器,尽管这个动作只有一个相关的减速器。
是否有一个选项可以强制每个已发送的操作仅转到其reducer?
如果没有 - 为什么?当然我误解了一些事情。
答案 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"。