【发布时间】:2015-12-08 09:48:11
【问题描述】:
我正在尝试使用 reactjs 来更新状态,一旦更新,就会触发一个请求新页面的 ajax 调用。就在 ajax 调用触发之前,设置了一个偏移变量:var offset = this.state.npp * this.state.page; 但是我发现 clickNextPage() 触发后,this.state.page 的值没有更新。
我根本不明白这里发生了什么,这似乎是一种竞争条件,因为我使用 {this.state.page} 在我的 render() 函数上观察状态变化。
如何确保我的 this.state.page 已更新,然后触发 findByName()?
clickNextPage: function(event){
console.log("clicked happend")
page = this.state.page;
console.log(page)
page += 1
console.log(page)
this.setState({page: page});
console.log(this.state.page)
this.findByName()
},
JS 控制台:
clicked happend
0
1
0
【问题讨论】:
-
您在此处编写的代码与实际代码有多接近?在更新之前,您没有任何可能更改
state.page的异步调用吗?
标签: reactjs state race-condition