【问题标题】:Compare values before and after updating redux state比较更新 redux 状态前后的值
【发布时间】:2021-05-21 00:03:04
【问题描述】:

我正在监听一个 Firebase 节点.....然后当 FBS 中发生更改时,我将快照与 Redux 中的当前内容进行比较。疯狂的是,Redux 状态甚至在我调度之前就已经反映了 FBS 中的更新值(来自快照)

const listenToFbsMyUserNode = (dispatch) => {
  database()
    .ref('profiles/users/')
    .on('value', snapshot => {
      let state = store.getState(); //at this point Redux somehow already knows about the updated value before Ive dispatched!!!
      //now can dispatch
      dispatch(_refreshMyProfile(snapshot.val()));
    });
};  

【问题讨论】:

    标签: react-native redux react-redux react-native-firebase


    【解决方案1】:

    这意味着您可能正在将 Firebase 对象复制到您的商店中。 由于 Firebase 不能一成不变地工作,Firebase 确实会修改这些对象 - 本质上也是通过调度修改您的商店,因为您的商店现在包含对这些对象的引用。这样的事情当然不应该发生 - 在分派对象之前将它们转换为平面数据,而不是直接分派 Firebase 对象。

    【讨论】:

    • 感谢您的回答......完全正确,我将从 FBS 返回的快照直接传递到存储中......非常有趣,它以这种方式工作。当您说“将您的对象转换为平面数据”时......您的意思是 JSON.stringify()?
    • 似乎有一个snapshot.data() 方法:googleapis.dev/nodejs/firestore/latest/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-22
    • 1970-01-01
    • 1970-01-01
    • 2016-08-26
    • 2016-11-20
    • 2021-12-10
    相关资源
    最近更新 更多