【问题标题】:Where to sync redux store and firebase?在哪里同步 redux store 和 firebase?
【发布时间】:2018-07-01 11:14:47
【问题描述】:

我最近开始学习 react 和 redux,对如何同步数据感到困惑?我正在使用create-react-appredux-thunk

假设我正在制作一个 todolist。那么我应该在 redux 中添加一个任务并使用 index.js 中的 store.subscribe 将整个商店更新到 firebase 吗?

或者我应该更新 firebase 存储并然后更新 redux 存储?我认为这将是更好的方法,因为应用程序只会在响应 firebase 存储时移动。 但是这种方法会减慢应用程序的重新渲染速度,因为数据更改必须等待异步请求完成,这对慢速互联网连接不利。并且会使用户体验变慢。 喜欢这个

export const startAddTaskAction = (task) => {
  return (dispatch, getState) => {
    database.ref('tasks').push(task)
        .then(() => {
            dispatch(addTaskAction(task));
        });
  };
};

或者我是否在调度中同时在 redux 存储和 firebase 中进行更新?但是,如果用户的互联网连接失败怎么办? Firebase 将无法写入自身,但 redux 会将任务显示为已保存? 喜欢这个

export const startAddTaskAction = (task) => {
  return (dispatch, getState) => {
    database.ref('tasks').push(task);
    dispatch(addTaskAction(task));
  };
};

我应该采用哪种方式,为什么它比其他方式更好?

【问题讨论】:

    标签: firebase redux synchronization


    【解决方案1】:

    使用第一个,您应该等到将数据推送到 Firebase 中,这是最佳做法。

    让我解释一下为什么你应该这样做

    1. 如果根本没有连接怎么办,用户可以添加所有任务,但最后当他重新加载页面时,他会惊讶地发现根本没有数据。

    2. 对于所有 crud,我们使用由数据库生成的 _id,如果您不访问服务器,您甚至根本无法获取数据。

    3. 与其给用户带来不可预测的结果,不如让他等待,如果超过显示一些消息网络连接很慢,给 api 设置一些时间间隔

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-10
      • 2019-02-26
      • 2020-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多