setState调用后state依然是旧的state无法更新为新的

来源:4-4 添加逻辑交互代码及总结

爱笑的小熊猫

2020-12-03

请教老师帮助:

仿照老师用setState去更新items的数组 遇到了奇怪的问题 原始数组3个元素

setState里面放进去4个元素 可是setState运行结束之后state里面的items依然是3个元素而不是更新为4个

如图88行数组4个元素 调用完setState90行的this.state.items依然是3个元素

http://img.mukewang.com/szimg/5fc88848098d355e00000000.jpg

写回答

1回答

张轩

2020-12-03

同学你好 setState 操作是异步的, 你直接在后面 console 还是旧的值,setState 接受第二个参数是 callback 可以这么写 this.setState({items: newItems}, () => { console.log(this.state)}) 在回调中就能拿到最新的值了

1
1
爱笑的小熊猫
谢谢老师的快速回复 老师太棒了 一下就给讲清楚了
2020-12-04
共1条回复

React16组件化+测试+全流程 实战在线账本项目

轻松上手,从设计图到上线,精通组件化思维和组件测试

709 学习 · 177 问题

查看课程