这更像是一个最佳实践问题。我正在考虑我在 reducer 中观察到的一段代码,它的运行情况如下:
if (!state.arrayOfObjects) return;
else {/** add an object to the array of objects/}
直观上,我认为操作是发生的对应用程序状态进行一些更改的事情。如果调度一个 Action 不会导致状态改变,那么我觉得这个 Action 很可能根本不应该被调度。如果 reducer 中存在阻止更改发生的某些条件,那么它可能应该是操作本身分派(dispatch)的条件。
另一方面,也许 reducer 中的条件是根据您不一定希望订阅组件的属性创建条件的一种方法。但是,我认为如果特定操作取决于该属性,那么组件不需要通过订阅获取该属性的最新值来确定是否应该分派(dispatch)它,这会很奇怪。
最佳答案
在 Redux 中,任何数字或 reducer 都可以对任何操作使用react。其中包括 0 个 reducer 和 50 个 reducer 。
Redux 风格指南鼓励 Model Actions as Events, Not Setters并发送至Put as Much Logic as Possible in Reducers .
因此,虽然这可能不是常见情况,但具有任何 reducer 或中间件都不会使用react的操作是完全可以的 - 例如用于记录目的或因为 reducer 将来可能会使用它。根据某些逻辑, reducer 有时会使用react,这是完全正常的,并且 100% 没问题。
关于reactjs - 分派(dispatch)操作是否总是会导致应用程序状态发生变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70383197/