更新的状态未反映在派单中



我正在设置联系状态,然后将状态调度到存储,但是在我的组件中的状态更新时,调度的状态为空。这也是在回调中,所以不知道为什么它没有更新......我错过了什么吗?谢谢大家。

if (showForm === true) {
const {contact} = this.state;
this.setState({ contact: shipInfo, showForm: !showForm }, () => {
dispatch(updateContact(contact));
this.formValidation();
});
}

您正在调用const { contact } = this.state,然后使用该版本的contact发送到存储。 但这不是更新的变量。 听起来你想做的是发送

dispatch(updateContact(shipInfo));

这就是您要更新变量以使其处于下一个状态的内容。

另一种写作方式是:

this.setState({ contact: shipInfo, showForm: !showForm }, () => {
const { contact } = this.state;
dispatch(updateContact(contact));
this.formValidation();
});

现在,您正在获取较新版本的状态,因为您正在从回调中定义它,其中状态已经更新。

相关内容