在另一个动作中调用动作是一个好习惯吗(不断变化)

Is it a good practice to call action within another action (in flux)

我有一个操作如下:

SomeActions.doAction1(){
   //..dispatch event "started"...
   //...do some process....
   FewActions.doAnotherAction(); //CAN WE DO THIS
   //...do something more....
   //..dispatch event "completed"..
}

虽然上面的方法没有问题,只是想知道,根据通量 pattern/standard 是否有效,或者是否有更好的方法。

此外,我想从商店调用操作不是一个好主意。如果我错了请纠正我。

是的,在另一个 Action 中调用一个 Action 是一种不好的做法。动作应该是原子的; Stores 中的所有更改都应响应单个操作。他们应该描述现实世界中发生的一件事:用户点击按钮、服务器响应数据、屏幕刷新等。

大多数人在将操作视为强制性 指令(先做 A,然后做 B)而不是对发生的事情的描述和执行的起点时,会对操作感到困惑反应 个进程。

这就是为什么我建议人们用过去时命名他们的动作类型:BUTTON_CLICKED。这提醒程序员注意 Actions 的基本外部驱动和描述性。

行动就像一张报纸,被送到所有的商店,描述发生了什么。

从 Stores 调用 Actions 几乎总是错误的做法。我只能想到一个例外:当 Store 通过启动异步进程来响应第一个 Action 时。当异步过程完成时,您想要触发第二个 Action。这是对服务器的 XHR 调用的情况。但更好的方法是将 XHR 处理代码放入 Utils 模块中。然后商店可以通过调用 Utils 模块中的方法来响应第一个 Action,然后 Utils 模块有代码在服务器响应返回时调用第二个 Action。