在第一次选择日期后,所选日期不会显示在控制台上并延迟,仅在下一次选择时设置为状态。
这是我的代码的链接。 转到示例代码
我错过了什么吗?我希望它在第一次选择时显示在控制台上。
setState
是异步的。
如果您打电话setState
并立即使用this.state
,它可能还没有更新。
如果您想设置状态并立即对该更改采取行动,您可以传入一个回调函数。
因此,在您的情况下,他的代码将起作用:
handleFromChange(from) {
this.setState({ from }, () => console.log(this.state));
}
文件:
setState()
不会立即改变 this.state 而是创建一个挂起的状态转换。调用此方法后访问this.state
可能会返回现有值。无法保证调用的同步操作,setState
并且调用可能会被批处理以提高性能。