在第一个日期选择之后,所选日期不会显示在控制台上并且延迟,并且仅在下一个选择时设置为状态。
这是我的代码的链接。 go to sample code
我错过了什么吗?我希望它能在第一个选择中显示在控制台上。
答案 0 :(得分:2)
setState
异步。
如果您致电setState
并立即使用this.state
,则可能无法更新。
如果要设置状态并立即对该更改执行操作,则可以传入回调函数。
因此,在您的情况下,他的代码将起作用:
handleFromChange(from) {
this.setState({ from }, () => console.log(this.state));
}
文档:
setState()
不会立即改变this.state但会创建一个 待定状态转换。在调用此文件后访问this.state
方法可以返回现有值。没有 保证同步操作setState
和电话可能 为获得业绩增长而受到批评。