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

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

比如我有如下代码:

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

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


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


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

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

【热门文章】
【热门文章】