react中的setState本身是异步的,但是我们可以将他变成同步的
1、方法一 将setState放到延时定时器
changeIncrease(){
setTimeoout(function(){
this.setState({
message:"我是阿鑫"
})
},0)
}
2、方法二 使用原生DOM事件监听
componentDidMount(){
document.getElementById("btn").addEventListener("click",()=>{
console.log('你好阿鑫')
})
console.log(this.state.message)
}
总结:1、setState在组件生命周期中或者事件合成中,setState是异步;
2、在setTimeout或者原生dom事件中,setState是同步。