将 Redux Offline 与 RTK-Query 结合使用

cse*_*lus 0 react-native redux react-redux redux-offline rtk-query

有人成功地将 Redux Offline 与 RTK Query 结合起来吗?

我不确定如何使用离线元数据装饰 RTK 查询突变,如 RTK 查询文档中所述:

const registerUser = (name, email) => ({
  type: 'REGISTER_USER',
  payload: { name, email },
  meta: {
    offline: {
      // the network action to execute:
      effect: { url: '/api/register', method: 'POST', body: `name=${name}&email=${email}`, headers: { 'content-type': 'application/x-www-form-urlencoded' } },
      // action to dispatch when effect succeeds:
      commit: { type: 'REGISTER_USER_COMMIT', meta: { name, email } },
      // action to dispatch if network action fails permanently:
      rollback: { type: 'REGISTER_USER_ROLLBACK', meta: { name, email } }
    }
  }
});
Run Code Online (Sandbox Code Playgroud)

基本上我想将由于设备离线而失败的突变(POST 请求)添加到队列中,如果设备再次在线,将处理该队列。

phr*_*hry 6

RTK Query 的作者在这里:RTK Query 没有任何与 Redux Offline 集成的机制,而且我自己也从未使用过 Redux Offline。因此,除非 Redux Offline 具有任何此类机制来与 RTK Query 集成,否则可能从未被任何人实现过,并且这两个系统是独立的系统,之间没有任何关系。

研究一个可以为您完成此操作的 Web Worker 可能是一个更好的主意?但不能 100% 确定这是否是最好的方法 - 我自己从未有过“离线”用例/需求。

  • 哦,没想到这里可能是该主题上最有资格的人的答案。感谢您的 RTK 查询和您的快速答复。我将 RTK 查询与 React Native 结合使用,之前仅使用 Redux 与“队列”,其中我会保存离线时发布的项目,以便在设备再次获得连接时进行同步。我错误地认为 Redux Offline 是 Redux 团队针对像我这样的(离线优先)用例的解决方案。将尝试调整离线队列以与 RTK 查询一起使用。 (2认同)