我过去使用componentDidUpdate()过,它按预期工作。
然而这一次,我做到了
componentDidUpdate(prevProps, prevState) {
if (prevState.object.someString !== this.state.object.someString) {
console.log(true);
}
}
并且true从不记录。我将两个状态对象都记录到控制台,发现它们完全相同:当前状态。
这是一个错误吗?我在这里错过了什么?
谢谢你。
编辑:我componentWillUpdate(nextProps, nextState)一次又一次地尝试做同样的事情,它们是同一个对象。
编辑 2:我正在通过执行以下操作来更改状态:
modifyObject = (field, value) => {
const { object } = this.state;
object[field] = value;
this.setState({ object });
}