小编典典

向Redux Reducer添加回调

reactjs

向传递给动作的回调添加回调时,是否会出现任何错误/反模式式的错误(就“ react-in-react / redux
”而言)action.data

// reducer
ACTION_FOR_REDUCER() {
  var x = 123
  if ( action.data.callback ) action.data.callback( x )
  return {
    something: action.data.somedata
  }
},

然后稍后在调用操作时在App中访问该数据(也许在容器中)

// later in the app
this.props.dispatch(changeSomething({
  somedata: somedata,
  callback: (x) => { console.log(x) }
}))

阅读 708

收藏
2020-07-22

共1个答案

小编典典

这个想法没有错,实现是正确的。

而不是添加回调,而是从操作中返回一个Promise(您将需要使用redux-thunk中间件或类似的替代方法)。

然后,您可以简单地执行以下操作:

dispatch(myAction).then(callback);

当然,您也可以在回调中简单地调度另一个动作,通常最终是一个复合动作。

const myAction = ...
const callbackAction = ...

const compoundAction = () => dispatch => {
     dispatch(myAction())
         .then(() => dispatch(callbackAction()));
};
2020-07-22