我收到错误
Invariant Violation: Dispatch.dispatch(...): Cannot dispatch in the middle of a dispatch.
使用2生命周期反应方法来调用API。
componentDidMount() {
const action_id = this.context.router.params.action_id
if(action_id) {
this.getMsg(action_id)
}
}
componentDidUpdate(prevContext) {
const action_id = this.context.router.params.action_id
if(!isEqual(prevContext.params.action_id, action_id)){
this.getMsg(action_id)
}
}
需要上面的步骤,componentDidMount中的代码调用端点来获取列表msg,componentDidUpdate检测用户是否单击返回或导航,然后调用Api。我不知道如何解决它。
答案 0 :(得分:0)
调度程序无法在操作中间发送另一个操作。 为避免这种情况,您可以在动作创建者中使用Promise。
例如:
return new Promise.Promise(function (resolve, reject) {
resolve();
}).then(() => {
dispatcher.dispatch(your action );
}).catch();