是否有任何错误/反模式(就“React/Redux 中的思考') 中添加了一个回调action.data
转化为行动?
// reducer
ACTION_FOR_REDUCER() {
var x = 123
if ( action.data.callback ) action.data.callback( x )
return {
something: action.data.somedata
}
},
然后稍后在调用该操作时在应用程序中访问该数据(可能在容器中)
// later in the app
this.props.dispatch(changeSomething({
somedata: somedata,
callback: (x) => { console.log(x) }
}))
想法没有错,错的是执行。
不要添加回调,而是从操作中返回一个承诺(您将需要redux-thunk https://github.com/gaearon/redux-thunk中间件或一些类似的替代品)。
然后你可以简单地执行以下操作:
dispatch(myAction).then(callback);
当然,您也可以简单地在回调中调度另一个操作,该操作通常最终成为一个复合操作。
const myAction = ...
const callbackAction = ...
const compoundAction = () => dispatch => {
dispatch(myAction())
.then(() => dispatch(callbackAction()));
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)