使用re-base在React app和Firebase数据库之间同步状态的多个属性

时间:2016-12-25 12:13:29

标签: reactjs firebase firebase-realtime-database

关于将您的反应应用状态的一个属性与firebase同步,重新基础文档非常明确:https://github.com/tylermcginnis/re-base#syncstateendpoint-options

它表示在组件的componentDidMount方法中使用syncState,如下所示:

componentDidMount(){
  base.syncState(`shoppingList`, {
    context: this,
    state: 'items',
    asArray: true
  });
}

我想同步两个不同的属性,所以'shoppingList;和'weeklyBudget'。我试图复制这样的声明:

componentDidMount(){
  base.syncState(`shoppingList`, {
    context: this,
    state: 'items'
  });
  base.syncState(`weeklyBudget`, {
    context: this,
    state: 'budget'
  });

}

但是控制台只会抛出以下错误:

  

未捕获错误:对象无效作为React子对象(找到:具有键{}的对象)。如果您要渲染子集合,请使用数组,或使用React附加组件中的createFragment(object)包装对象。检查Order的呈现方法。

如何使用re-base在React app和Firebase数据库之间同步状态的多个属性?

1 个答案:

答案 0 :(得分:1)

如果您在asArray: true之后立即将context: this,添加到对象,那么您应该没问题。

它对我来说就像这样。我自己对此代码不满意,因为我有七个连接到不同端点的块。另一种方法是使用fetch并通过Promise.all([x, y, z]).then()

解决