我们使用的setState方法是异步请求,有的时实际的值会和我们预期不一致。
例如:
onChange(event) {
console.log(event)
this.setState({money: event}
})
<InputItem
type="number"
extra={this.state.extra}
value={this.state.money}
onChange={this.onChange.bind(this)}
>
在这个代码片段中,我们通过onChange方法想拿到输入框输入的值,但是用console打印这个值的时候我们发现:值总是比我们实际输入的慢一位(我们输入1234 , console出来的是123)
这个现象就是setState的异步处理造成的,为了解决这个问题,我们将onChange方法改为
onChange(event) {
console.log(event)
this.setState({money: event}, function () {
this.stateFunction()
})
这样我们console出来的值就跟我们实际输入的一致了,通过一个回调函数就能轻松让setState变为同步。
cool~~~~~~~~