出错代码
目标是修改this.state.citys为初始化城市,但是发现并没有初始化成功!
this.setState({
citys: [...initCityList]
});
console.log(this.state.citys);
日志打印的还是未初始化的数据
原因分析
this.setState()是异步方法,也就是说,setState还没有执行完成,日志打印方法已经触发了,导致以为没有正确初始化。
需要在回调中调用打印日志方法。
正确写法
在回调里调用打印日志就正常了。
this.setState({
citys: [...initCityList]
},()=>{
console.log(this.state.citys);
});
参考
https://stackoverflow.com/questions/41446560/react-setstate-not-updating-state
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)