reactjs - Redux 状态已更新,但 UI 未更新
问题描述
我创建了简单的应用程序来使用 redux 和 antd 库添加用户。添加用户时,我试图显示成功消息。我能够在状态下获取更新的消息,但是当我提醒该消息时,它显示为空白。当我再次单击该按钮时,它会在警报中显示成功消息。
我创建了代码沙盒链接:https ://codesandbox.io/s/admiring-waterfall-v04g9
请帮帮我,我对反应很陌生。
解决方案
这是可能发生的事情 - 因为您的回调函数是同步的,即使 addUser 函数放在警报函数之前,也不能保证它会在它之前执行。
解决方案是使您的函数异步如下,以保证在触发警报之前添加用户并因此更新状态(使用用户和您正在显示的消息)。确保保存更改并刷新沙箱以对其进行测试。
handleSubmit = e => {
e.preventDefault();
this.props.form.validateFields(async (err, values) => {
if (!err) {
await this.props.addUser(values);
alert(this.props.message);
}
});
推荐阅读
- android - 在 Android 8 设备的应用程序中更改语言后无法获取原始文件夹文件
- java - 双向 OneToMany 和 ManyToOne 在保存时返回“NULL not allowed for column”
- javascript - DRY:如何将这个重复的日期代码简化为一个函数?
- android - 我们如何识别使用 NDK 构建的库是否支持 64 位?
- javascript - Formik - 如何在提交验证失败时显示附加错误消息
- php - php运行c++编程出现分段错误
- hadoop - 使用 distcp 在 hadoop 集群之间复制数据时出现 DuplicateFileException(记录会导致重复)
- android - onClickListener 不适用于卡片视图上的选项卡式布局
- spring - 非 Spring 安全过滤器的相对排序(如 addFilterAfter、addFilterBefore)?
- typescript - TS2304:找不到名称