出错代码
目标是修改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