async setState是什么意思?

时间:2018-01-01 17:58:08

标签: javascript reactjs react-native

在react-native中考虑TextInput,下面的实现似乎是一种标准方法:

<TextInput
  value={this.state.text}
  onChangeText={text => this.setState({ text })}
/>

但是,setState()是一个异步函数。我想知道是否可能由于setState()的执行顺序而遇到不一致。

例如:

  1. 输入&#39; ab&#39;
  2. setState({text:&#39; ab&#39;})
  3. setState({text:&#39; a&#39;})
  4. this.state.text导致&#39; a&#39;

2 个答案:

答案 0 :(得分:7)

  

setState()是一个异步函数。是否可能由于setState()

的执行顺序而遇到不一致

异步setState()并不意味着将以任意随机顺序调用setStatesetState是异步意味着它只是异步更新状态。

在你的情况下,每当按下某个键时,onChange处理程序将被调用,并且将调用setState,这意味着setState将在每次按键时顺序调用,并将更新状态相同的序列但异步

答案 1 :(得分:0)

尝试

<TextInput
   onChange={(e) => this.setState({ text : e.target.value })}
/>