Angular5 ngxs、redux开发工具显示以前的状态

Angular5 ngxs、redux开发工具显示以前的状态,angular5,ngxs,Angular5,Ngxs,这是一本书 在console.log中,状态已正确更新。此外,模板已正确更新 在redux开发工具中,状态会随着调度延迟而更新 更清楚地说,初始状态是: {data: [], loading: false, counter: 0} 当我单击“获取”按钮时,组件将发送两个事件: this.ngxs.dispatch(new LoadingData()); this.ngxs.dispatch(new GetData()); LoadingData仅清空数据数组并将loading设置为true:

这是一本书

在console.log中,状态已正确更新。此外,模板已正确更新

在redux开发工具中,状态会随着调度延迟而更新

更清楚地说,初始状态是:

{data: [], loading: false, counter: 0}
当我单击“获取”按钮时,组件将发送两个事件:

this.ngxs.dispatch(new LoadingData());
this.ngxs.dispatch(new GetData());
LoadingData仅清空数据数组并将loading设置为true:

@Mutation(LoadingData)
loadingData(state){
    state.data = [];
    state.loading = true;
}
在控制台和模板中,状态正确更新,但在redux dev tools中,加载仍然为false:

GetData是一个执行服务方法的操作,该方法返回一个可观察对象,然后分派两个事件DataSucces和Increase:

@Action(GetData)
getData(state){
  return this.as.list().map(data => [
    new DataSuccess(data),
    new Increase(),
  ]);
}
只是现在,在redux开发工具中,加载设置为true

仅将增量计数器和DataSucces集加载增加为false并填充数据数组:

@Mutation(Increase)
increase(state){
  state.counter = state.counter + 1;
}

@Mutation(DataSuccess)
dataSuccess(state, {payload}){
  state.data = payload;
  state.loading = false;
}
在增加之前执行DataSucces。在redux开发工具中,DataSuccess加载仍然设置为true,数据数组仍然为空

在redux开发工具中,最终填充了Increase数据数组,但计数器设置为0


所以redux开发工具总是显示以前的状态。我是redux/ngrx/ngxs的新手,所以我不知道这种行为是否是我的错。我真的很感激任何提示或纠正,使它以正确的方式工作

这是框架中的一个bug,在最新版本中得到了解决:)

我觉得一切正常。你的问题是什么?我不认为在redux开发工具中看到错误的状态是正常的(更准确地说是前一种状态)。请查看更新的问题,或在启用redux dev tools扩展的浏览器中执行示例。