更新状态未反映在调度中

时间:2020-06-30 18:14:15

标签: reactjs redux

我正在设置联系状态,然后将状态分派给商店,但是在更新组件中的状态时,分派的状态为空。这也在回调中,所以不确定为什么不更新...我错过了什么吗?谢谢大家。

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

1 个答案:

答案 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();
        });

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