redux sagas - 块调度动作

redux sagas - block dispatched action

如果调度 FOO 操作并且我的 saga 通过 takeEvery(FOO) 启动任务,

是否可以更改正在分派的操作,以便我 START_FOO 而不是 FOO 到达减速器?

我知道我可以 START_FOO 通过 yield put({ type: START_FOO })

到达减速器

没有。 Redux-Saga 中间件总是在 尝试处理它之前 将分派的动作传递给链中的下一个中间件,因此动作总是首先到达 reducers。您将需要一些其他中间件来修改操作。 Redux-Saga 实际上只查看操作,不允许您修改它们。

尝试以下操作:

  1. 忽略reducer中的FOO动作,但是当START_FOO到来时改变你的状态。
  2. 收听 saga 中的 FOO 操作。当它出现时,您可以创建一个新的(修改后的)有效负载并使用 START_FOO 操作发送它。