redux sagas - 阻止派遣行动

时间:2016-12-08 18:58:52

标签: reactjs redux react-redux redux-saga

如果调动动作FOO并且我的传奇通过takeEvery(FOO)启动任务,

是否有可能改变被调度的动作,所以我有START_FOO而不是FOO到达减速器?

我知道我可以通过yield put({type:START_FOO})让START_FOO到达减速器

2 个答案:

答案 0 :(得分:1)

没有。 Redux-Saga中间件总是将调度的动作传递给链中的下一个中间件,然后尝试处理它,因此操作将始终首先到达reducers。您需要一些其他中间件来修改操作。 Redux-Saga实际上只能查看操作,并且不允许您修改它们。

答案 1 :(得分:0)

尝试以下方法:

  1. 忽略reducer中的FOO操作,但在START_FOO到来时更改您的状态。
  2. 听听传奇中的FOO动作。当它到来时,你可以创建一个新的(修改的)有效载荷并使用START_FOO动作发送它。