react-day-picker setState 延迟显示在控制台上

react-day-picker setState delayed to display on console

在选择第一个日期后,所选日期不会显示在控制台上并且会延迟,并且只会在下一次选择时设置为状态。

这是我的代码的 link。 go to sample code

我错过了什么吗?我希望它在第一次选择时显示在控制台上。

setState 异步的。

如果您调用 setState 并立即使用 this.state,很可能它还没有更新。

如果您想设置状态并立即对该更改采取行动,您可以传入一个回调函数。

因此,在您的情况下,他的代码将起作用:

handleFromChange(from) {
    this.setState({ from }, () => console.log(this.state));
}

文档:

setState() does not immediately mutate this.state but creates a pending state transition. Accessing this.state after calling this method can potentially return the existing value. There is no guarantee of synchronous operation of calls to setState and calls may be batched for performance gains.