为什么setState将错误的值设置为state?

时间:2018-06-29 15:28:24

标签: reactjs momentjs

代码在这里,date是时刻对象:

 const date = this.state.date.clone().add(1, 'years');
 console.log(date); // Sat Jun 01 2019 00:00:00 GMT+0300
 this.setState({date}, () => console.log(this.state.date)); // Sun Jul 01 2018 00:00:00 GMT+0300

也许是因为突变发生的?还是对moment.js的错误使用?还有其他想法吗?请帮助:)

1 个答案:

答案 0 :(得分:0)

问题出在这里

  

setState()并不总是立即更新组件。它可能会批量更新或将更新推迟到以后。

来源:https://reactjs.org/docs/react-component.html#setstate

回调包含旧数据,您应该改为在driver.execute_script("window.document.getElementById('search-btn').click()") 生命周期挂钩中检查值