首页 > 解决方案 > Redux-thunk 和 redux-promise:处于 PENDING 状态的空有效负载

问题描述

所以我已经redux-thunk设置好了,当我调用这个updateUser(userInfos)动作时,它会返回一个用这些信息更新服务器的承诺。

但是依次我也需要用这些信息更新本地状态,如果我等待UPDATE_USER_FULFILLED,我的动作效果不是即时的,这对用户来说感觉很奇怪。

我曾想过在服务器响应到达最新数据之前UPDATE_USER_PENDING减少更新本地状态的操作(这应该是相同的,所以没有重新渲染),不幸的是,操作是:(payloadUPDATE_USER_PENDINGnull

没有办法用一些数据加载它,这将允许在服务器返回之前即时 UI 响应?

可能是这样的:

export function updateUser(user) {
  return {
    type: UPDATE_USER,
    payload: {
      promise: userServices.update(user),
      localPayload: user,
    }
  }
}

但我猜这不可用?

目前,我看到的唯一解决方案是创建一个UPDATE_USER_LOCAL操作,该操作将与服务器调用并行执行本地操作。但这不是很优雅而且更重。

谢谢您的帮助

标签: reactjsreduxredux-thunkredux-promise-middleware

解决方案


推荐阅读