在商店监听器中调用另一个动作是否为Flux的反模式?

时间:2018-04-04 19:04:05

标签: javascript reactjs redux flux alt.js

在我的代码库中,我在一些商店监听器中触发动作。 但是,我最近听说这是一种不好的做法。 为什么它很糟糕,我应该如何修复或重构它? 我已就此问题进行了研究,但未能找到一个好的例子。

仅供参考,我使用Alt.js提供的action.defer来解决行动。

1 个答案:

答案 0 :(得分:1)

您的方法是一种有效的Flux模式,但是当处理操作的函数触发另一个操作时,它很容易成为代码中的错误点,并且很难跟踪该错误。

如何重构:

取决于商店当前触发的操作意味着什么:

  • 如果您在每次触发操作A时触发操作B,则操作创建者(调用action.defer的代码)应触发A然后触发B
  • 如果在您的商店状态符合某些条件时触发了B,您可以在创建的操作上检查该previousState,并选择在A之后触发B.或者不是。