我是react js
的新手。我有一个动作,
export const updateActivePage = (activePage) => {
return {
type: UPDATE_ACTIVEPAGE,
payload: activePage
}
}
在我的减速器中,
const initialState = {
activePage: 1,
}
case UPDATE_ACTIVEPAGE: {
return {
...state,
activePage: activePage
}
}
在我的容器中,
handlePageChange = (pageNumber) => {
this.props.updateActivePage(pageNumber);
this.props.fetchUserJd(this.props.activePage);
}
现在,我仅在成功完成上一个操作后才调用此this.props.fetchUserJd(this.props.activePage);
函数。因为这没有任何回报。
现在,我有一个解决方案,即回调函数。
但是在某种程度上.then
不可用,因为第一个函数没有返回任何承诺。任何帮助都会有所帮助。
答案 0 :(得分:0)
您可以执行以下操作:在mapDispatchToProps中,fn返回如下操作:
function mapDispatchToProps(dispatch) {
return {
updateActivePage: (pageNumber) => {
return new Promise((resolve, reject) => {
dispatch(actions.updateVisualState(pageNumber, resolve, reject));
});
}
};
在这种情况下,您将可以在视图中使用then进行操作:
this.props.updateActivePage(pageNumber).then(()=>{
this.props.fetchUserJd(this.props.activePage);
})
您只需要选择正确的位置即可兑现承诺。