官方文档在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)