反应状态不使用不变性助手更新功能更新

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);
  }
)