【发布时间】:2019-07-10 12:31:22
【问题描述】:
我在运行代码时收到以下警告:
第 48 行:不要直接改变状态。使用 setState() 反应/无直接突变状态
此警告涉及以下代码行:
updateDelay(prediction_arr,prediction_dep) {
this.state.chartDataWake = [...this.state.chartDataWake, {wake: this.state.wake===84.73 ? "H" : (this.state.wake===14.78 ? "M" : "L"), delay: prediction_arr}];
this.state.chartDataTurnaround = [...this.state.chartDataTurnaround, {turnaround: this.state.schedTurnd, delay: prediction_arr}];
this.setState({
prediction_arr: prediction_arr,
prediction_dep: prediction_dep,
delay_arr_cat: prediction_arr===0 ? "<15" : (prediction_arr===1 ? "[15; 45]" : ">45")
});
};
我知道我应该将所有声明放在this.setState({ 中。但是我不清楚我应该如何改变
this.state.chartDataTurnaround = [...this.state.chartDataTurnaround, {turnaround: this.state.schedTurnd, delay: prediction_arr}];
为了能够编译代码。
【问题讨论】:
标签: javascript reactjs