我正在设置联系状态,然后将状态分派给商店,但是在更新组件中的状态时,分派的状态为空。这也在回调中,所以不确定为什么不更新...我错过了什么吗?谢谢大家。
if (showForm === true) {
const {contact} = this.state;
this.setState({ contact: shipInfo, showForm: !showForm }, () => {
dispatch(updateContact(contact));
this.formValidation();
});
}
答案 0 :(得分:1)
您正在呼叫const { contact } = this.state
,然后使用该版本的contact
发送到商店。但这不是更新的变量。听起来您想做的就是发送
dispatch(updateContact(shipInfo));
这就是您要更新变量以使其进入下一个状态的条件。
另一种书写方式是:
this.setState({ contact: shipInfo, showForm: !showForm }, () => {
const { contact } = this.state;
dispatch(updateContact(contact));
this.formValidation();
});
现在,您正在获取状态的较新版本,因为您是在状态已更新的回调中定义状态的。