我在我的react项目中添加了以下代码,以通过方法的响应设置状态。但是状态从未更新。始终为空。我可以在这里设置状态吗?
_onload():any{
this._DataAccessObj = new DataAccess();
let result = this._DataAccessObj.getRequest(this.props.itemId).then((item:IRequest) =>{
console.log("item");
console.log(item);
this.setState ({
Request: item
});
console.log(this.state.Request);
console.log("setstate");
});
return;
}
答案 0 :(得分:0)
来自ReactJS的documentation和生命周期:
浏览器每秒钟调用一次tick()方法。里面的时钟 组件通过使用对象调用setState()来调度UI更新 包含当前时间。感谢setState()调用,React 知道状态已更改,然后再次调用render()方法以 了解屏幕上应该显示的内容。这次, render()方法将有所不同,因此渲染输出将 包括更新的时间。 React会相应地更新DOM。
最后一部分很重要:实际状态对象将稍后在该行上更新,而不是在调用setState方法时直接更新。
React可以将多个setState()调用批处理为单个更新,以用于 性能。
由于this.props和this.state可能会异步更新,因此您 不应依赖于它们的值来计算下一个状态。