小编典典

在console.log上反应慢的setState

reactjs

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

‘’在H上

HE上的“ H”

HEL上的“ E”

地狱中的“ L”

HELLO上的“ L”

那个怎么样?


阅读 324

收藏
2020-07-22

共1个答案

小编典典

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

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