向传递给动作的回调添加回调时,是否会出现任何错误/反模式式的错误(就“ react-in-react / redux ”而言)action.data?
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) } }))
这个想法没有错,实现是正确的。
而不是添加回调,而是从操作中返回一个Promise(您将需要使用redux-thunk中间件或类似的替代方法)。
然后,您可以简单地执行以下操作:
dispatch(myAction).then(callback);
当然,您也可以在回调中简单地调度另一个动作,通常最终是一个复合动作。
const myAction = ... const callbackAction = ... const compoundAction = () => dispatch => { dispatch(myAction()) .then(() => dispatch(callbackAction())); };