在我的代码库中,我在一些存储监听器内触发操作。 然而,我最近听说这是一个不好的做法。 为什么它不好?我应该如何修复或重构它? 我已经对这个问题进行了研究,但找不到一个好的例子。
仅供引用,为了触发操作,我使用 Alt.js 提供的 action.defer
.
最佳答案
您的方法是有效的 Flux 模式,但是当处理操作的函数触发另一个操作时,它很容易成为代码上的错误点,并且很难跟踪错误。
<小时/>如何重构:
取决于商店当前触发的操作意味着什么:
- 如果每次触发操作 A 时都触发操作 B,则操作创建者(调用 action.defer 的代码)应触发 A,然后触发 B
- 如果 B 在您的商店状态满足某些条件时被触发,您可以在创建操作中检查 previousState,并选择是否在 A 之后触发 B。
关于javascript - 在存储监听器中调用另一个操作是否是 Flux 的反模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49658547/