为什么我dispatch后在获取不是最新的值?

比如我有如下代码:

let { dispatch, list } = this.props;
 //首先派发改变state中xnld的值,在reducer中仅仅改变了xnld的值而已,没做什么异步操作
dispatch(changeXnld()); 
//然后在获取state中的xnld,但是值为什么不是最新的?  
console.info(list.xnld);

像这种我改变状态后就要立即获取状态值的情况要怎么保证我获取到的都是最新的state呢?

阅读 8.7k
3 个回答

首先,state 变化是异步的,更新 state 后不能马上读取到新的 state。

其次,你这个 list 是通过 props 传进来的,要在组件第二次渲染的时候才能拿到更新后的 list.xnld。

其实比较好奇的是这样的代码是写在生命周期的哪个阶段?为什么在dispatch之后去获取list呢?

新手上路,请多包涵

请问这种情况该怎么做

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题