反应状态不使用不变性助手更新功能更新
React state not updating using immutability helper update function
您好,我在我的组件中使用了 Formik,其中的方法调用如下所示
addMetadata(values) {
console.log(values);
let newState = update(this.state, {
pro: { $set: values}
});
console.log(newState); // this point result print as expected
this.setState(newState);
console.log(this.state); // but here state not showing update result
}
我的状态
this.state = {
pro: {
key1: '',
key2: []
key3: {}
}
}
但是状态没有更新,谁能知道为什么?
this.setState(newState)
是异步的(或者至少可以是)。将日志语句放在下一行将不起作用,因为尚未设置状态。
在极少数情况下,您需要知道 setState 何时完成,您可以提供一个回调作为 setState 的第二个参数,它会在完成后调用:
this.setState(
newState,
() => {
console.log(this.state);
}
)
您好,我在我的组件中使用了 Formik,其中的方法调用如下所示
addMetadata(values) {
console.log(values);
let newState = update(this.state, {
pro: { $set: values}
});
console.log(newState); // this point result print as expected
this.setState(newState);
console.log(this.state); // but here state not showing update result
}
我的状态
this.state = {
pro: {
key1: '',
key2: []
key3: {}
}
}
但是状态没有更新,谁能知道为什么?
this.setState(newState)
是异步的(或者至少可以是)。将日志语句放在下一行将不起作用,因为尚未设置状态。
在极少数情况下,您需要知道 setState 何时完成,您可以提供一个回调作为 setState 的第二个参数,它会在完成后调用:
this.setState(
newState,
() => {
console.log(this.state);
}
)