比如我有如下代码:
let { dispatch, list } = this.props;
//首先派发改变state中xnld的值,在reducer中仅仅改变了xnld的值而已,没做什么异步操作
dispatch(changeXnld());
//然后在获取state中的xnld,但是值为什么不是最新的?
console.info(list.xnld);
像这种我改变状态后就要立即获取状态值的情况要怎么保证我获取到的都是最新的state呢?
比如我有如下代码:
let { dispatch, list } = this.props;
//首先派发改变state中xnld的值,在reducer中仅仅改变了xnld的值而已,没做什么异步操作
dispatch(changeXnld());
//然后在获取state中的xnld,但是值为什么不是最新的?
console.info(list.xnld);
像这种我改变状态后就要立即获取状态值的情况要怎么保证我获取到的都是最新的state呢?
3 回答1.8k 阅读✓ 已解决
1 回答1.6k 阅读✓ 已解决
4 回答1.6k 阅读✓ 已解决
2 回答2.4k 阅读✓ 已解决
1 回答2.5k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
2 回答1.6k 阅读✓ 已解决
首先,state 变化是异步的,更新 state 后不能马上读取到新的 state。
其次,你这个 list 是通过 props 传进来的,要在组件第二次渲染的时候才能拿到更新后的 list.xnld。