【发布时间】:2019-11-12 10:00:09
【问题描述】:
在 S.O. 上发布了一个问题。已经有相同的标题,但我被困在不同的部分。
我正在设置我的状态:
var index = this.state.rectangles.indexOf(eachRect);
const newRects = [...this.state.rectangles];
newRects[index].x = event.target.x();
newRects[index].y = event.target.y();
this.setState({ rectangles: newRects });
据我所知,执行const newRects = [...this.state.rectangles] 是创建一个不同的对象,而不是指向同一个引用(这是另一个 S.O 问题的错误,因此我的 prevState 和 this.state 之间存在区别。
但是,在 componentDidUpdate() 中记录 prevState 和 this.state 仍然返回 true。
我也尝试过设置状态:
this.setState(prevState => {
console.log(prevState.rectangles[index]);
let oldRects = [...prevState.rectangles];
oldRects[index].x = event.target.x();
oldRects[index].y = event.target.y();
console.log("new rects: ", oldRects);
return { rectangles: oldRects };
});
也不行。
【问题讨论】:
标签: reactjs