官方文档在setState的说明上有这么一句话:State 的更新可能是异步的
也就是说,State在某些情况下可以是同步的表现形式。
我们在直接使用setState的情况下,它是异步的,语法如下:
// 异步更新
this.setState({
control:''
})
this.props.textVal(this.state.control)
如果我们需要让setState变为同步,那么可以使用以下几种方式:
方法一:
// 同步更新 方法-1
this.setState({
control:''
},()=>{
this.props.textVal(this.state.control)
})
方法二:
// 同步更新 方法-2
setTimeout(()=>{
this.setState({
control:''
})
this.props.textVal(this.state.control)
},0)