我的react / redux应用程序中有一个多页用户注册表单。
当用户点击“下一页”时,它会调度一个调用来更新本地redux商店(而不是服务器)中的用户个人资料。
当他们点击最后一页上的“提交”时,我目前有一个点击处理程序:
clickHandler: function(formData) {
dispatch(updateProfileInStore(formData);
dispatch(saveProfileToServer());
}
我的问题是:在调用第二个调度之前,我能100%确定具有我的用户配置文件的Redux商店是否会更新?
我担心在某些情况下,可能会在添加表单数据的最后一页之前将配置文件写入我的数据库。
答案 0 :(得分:2)
不保证。您可以做的是传递saveProfileToServer
新表单数据使其更新状态并将更新的表单数据发送到服务器。
setState()不会立即改变this.state但会创建一个 待定状态转换。 ...... 没有 保证调用setState和调用的同步操作 为了提高性能而受到批评。
答案 1 :(得分:0)
在此处添加同步行为的唯一方法是使用redux thunk或sagas。一个redux thunk返回了可以解决的承诺,并且在sagas中,我们可能必须注意updateProfileInStore调度的成功操作,该操作需要调用saveProfileToServer。