我是react-redux
的新手。这就是我要做的,
我有一个类似的动作
export const updateActivePage = (activePage) => {
return (dispatch) => {
return dispatch ({
type: UPDATE_ACTIVEPAGE,
payload: activePage
});
}
}
现在,在我的容器中,我想调用一个在此之后将被调用的动作,
handlePageChange = (pageNumber) => {
this.props.updateActivePage(pageNumber).then(() => {
this.props.fetchUserJd(this.props.activePage);
})
}
case UPDATE_ACTIVEPAGE: {
console.log("action payload", action.payload);
return {
...state,
activePage: action.payload
}
}
因此,在这里,我尝试使用then
,但收到一个错误,提示Uncaught TypeError: _this.props.updateActivePage(...).then is not a function
那我做错了什么?
答案 0 :(得分:1)
您从根本上在滥用redux-thunk。该库的预期用途是调度一个动作创建者(在这种情况下为updateActivePage
),该动作创建者返回一个使用状态参数调用的函数。您应该分派updateActivePage
,因为这是您的重击。同样,这是应该包含您的计算的函数,然后应将结果放入状态。看来您正在直接调用此函数,并且由于某种原因希望它返回一个Promise,然后以某种方式进行一些计算。您应该重新访问那些笨拙的文档。
答案 1 :(得分:0)
public class TaskController : ApiController
{
[HttpGet]
[Route("GetAffectedCIs/{number}")]
public ListResponse<TaskCiResultFlat> GetAffectedCIs(string number)
{
......
}
}
调度不是一个承诺,它只是一个功能。
export const updateActivePage = (activePage) => {
return (dispatch) => {
return dispatch ({
type: UPDATE_ACTIVEPAGE,
payload: activePage
});
}
}
您能尝试像我上面提到的那样兑现诺言吗?