我想知道如何在 mapDispatchToProps 中为 react-redux 的 connect 使用异步操作创建器。我正在使用 redux-thunk 中间件,以下是我的 mapDispatchToProps:
function mapDispatchToProps(dispatch) {
return {
foo: function() {
dispatch(someAction());
return function asyncAction(dispatch, getState) {
console.log("An async action!");
dispatch(someOtherAction(getState().foo));
};
}
}
}
但是,当我执行上述操作时,异步操作不会被执行。正确的做法是什么?
请您参考如下方法:
我建议以不同的方式声明您的实际 thunk (someOtherAction)。在以下示例中,asyncAction 是一个返回 thunk 的异步操作创建者。然后,thunk 可以分派(dispatch)其他操作(例如,在 Promise 解析之后)。
function asyncActionCreator () {
return (dispatch, getState) => {
dispatch(someAction());
someAsyncStuff().then(() => {
dispatch(someOtherAction(getState().foo);
});
}
}
function mapDispatchToProps(dispatch) {
return {
foo: () => dispatch(asyncActionCreator())
}
}






