我正在使用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.expenditure
和this.state.cashbook.income
访问,但没有快乐,我收到错误:Uncaught TypeError: Cannot read property 'expenditure' of undefined
。
不太确定要尝试什么,任何指针都是神圣的棕色。
提前致谢:)
答案 0 :(得分:0)
原来我是个白痴:)
我只需要在cashbook
上使用syncstate而不是cashbook/expenditure
,然后拨打this.state.cashbook.expenditure
。