注意:setState是异步的。
如下的代码,setState之后值仍然没变
constructor(){
super();
this.state= {aaa:'s'},
}
componentDidMount(){
console.log(this.state.aaa);//s
this.setState({aaa:'sss'});
console.log(this.state.aaa);//s
}
如果需要在状态更新、渲染已经调用完成,更改已经刷新到DOM当中之后做一些工作,可以传递一个回调函数作为setState的第二个参数
componentDidMount(){
console.log(this.state.aaa);//s
this.setState({'aaa':'sss'},()=>{
console.log(this.state.aaa);//sss
});
console.log(this.state.aaa);//s
}