bre*_*nie 7 reactjs redux react-redux
我不知道如何使用异步操作的创作者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));
};
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是,当我执行上述操作时,异步操作不会执行.这样做的正确方法是什么?
我建议以不同方式声明你的实际thunk(someOtherAction).在以下示例中,asyncAction是一个返回thunk的异步操作创建器.然后,thunk可以调度其他操作(例如,在promise解析之后).
function asyncActionCreator () {
return (dispatch, getState) => {
dispatch(someAction());
someAsyncStuff().then(() => {
dispatch(someOtherAction(getState().foo);
});
}
}
function mapDispatchToProps(dispatch) {
return {
foo: () => dispatch(asyncActionCreator())
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7495 次 |
| 最近记录: |