在 console.log 上react缓慢的 setState

IT技术 javascript reactjs
2021-04-07 04:26:21

我有一个简单的 React 组件,它有一个带有 onChange 事件的输入字段。onChange 事件触发,并使用输入字段中的值更新某些组件状态。但是我注意到当控制台记录状态是一个字符时。因此,如果我输入“Hello”,控制台会显示状态为

'' 在 H

HE上的'H'

HEL 上的“E”

地狱中的“L”

你好上的“L”

那个怎么样?

1个回答

this.setState是异步的。这意味着记录的时间控制台无法与状态更新的时间匹配如果您想在状态更改后查看确切的值,您必须执行以下操作

this.setState({ 'updated': 'state'}, () => {
  console.log(this.state.updated);
});