如何使用React访问Firebase中的嵌套数据?

时间:2015-12-21 22:29:24

标签: javascript reactjs firebase

我正在使用React和Firebase构建一个简单的应用程序 - 一种管理收入和支出的方法,我的Firebase设置了以下结构:

"cashbook" : {
  "expenditure" : {
    "expenditure-1" : {
      "amount" : "500",
      "category" : "insurance",
      "date" : "date",
      "name" : "Life Insurance",
      "type" : "recurring"
    }
  },
  "income" : {
    "salary" : {
      "amount" : "500",
      "category" : "salary",
      "date" : "date",
      "type" : "recurring"
    }
  }
}

我使用Re-base

设置了React,并且只使用了支出
componentDidMount: function() {
    // Two way data binding
    base.syncState('cashbook/expenditure', {
      context: this,
      state: 'expenditure'
    });
  },

然后我可以使用:this.state.expenditure

进行参考

然而,当我尝试扩展应用程序以访问收入数据时,情况变得很糟糕。我将componentdidmount修改为:

componentDidMount: function() {
    // Two way data binding
    base.syncState('cashbook', {
      context: this,
      state: 'cashbook'
    });
  },

尝试使用this.state.cashbook.expenditurethis.state.cashbook.income访问,但没有快乐,我收到错误:Uncaught TypeError: Cannot read property 'expenditure' of undefined

不太确定要尝试什么,任何指针都是神圣的棕色。

提前致谢:)

1 个答案:

答案 0 :(得分:0)

原来我是个白痴:)

我只需要在cashbook上使用syncstate而不是cashbook/expenditure,然后拨打this.state.cashbook.expenditure