async setState是什么意思?

问题描述 投票:2回答:2

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

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

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

例如:

  1. 输入'ab'
  2. setState({text:'ab'})
  3. setState({text:'a'})
  4. this.state.text导致'a'
javascript reactjs react-native
2个回答
7
投票

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

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

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


0
投票

尝试

<TextInput
   onChange={(e) => this.setState({ text : e.target.value })}
/>
© www.soinside.com 2019 - 2024. All rights reserved.