我有两个redux动作,其调用如下。
export function action1(params) {
//This line is always called.
return (dispatch) => {
//This line is not called the second time.
return MyApi.call1(params)
.then(response => {
// some logic
return dispatch(someFunction1());
})
.catch(error => {
throw(error);
});
};
}
export function action2(params) {
return (dispatch) => {
return MyApi.call2(params)
.then(response => {
// call the first API again
action1();
return dispatch(someFunction2());
})
.catch(error => {
throw(error);
});
};
}
首次加载视图时,在视图的构造函数中调用action1
。执行操作并在同一视图中触发action2
后,需要在action1
成功调用action2
以从服务器获取更新列表。不幸的是,第二次调用action1
时代码中断没有任何错误。
我在这里缺少什么?
答案 0 :(得分:2)
您尚未发送action1
。
dispatch( action1( params ) )
在没有action1()
的情况下调用dispatch
只会返回一个函数。为了在返回的函数中获得dispatch
,您应该dispatch
该函数。然后它将被redux-thunk
中间件捕获。中间件将通过dispatch
并调用函数。