所以我有一些值的状态数组,它说undefined不是对象(评估this.state.unavailable)。我不确定自己在做什么错。
firebase.database().ref('recipes').orderByChild('custard'). equalTo(0).once('child_added', function(snapshot) {
var variable = snapshot.val();
var i;
for (i = 0; i < this.state.unavailable.length; i++){
if (variable.unavailable[i] == 0) {
console.log(variable);
}
}
});
所有开始的地方
constructor() {
super()
this.state = {
refreshing: false,
checked: false,
one: false,
two: false,
three: false,
four: false,
five: false,
six: false,
seven: false,
eight: false,
nine: false,
key: 1,
list: [],
unavailable: []
}
}
答案 0 :(得分:2)
使用箭头功能可以克服当前上下文中的这一问题。
如下所示。
firebase.database().ref('recipes').orderByChild('custard'). equalTo(0).once('child_added', (snapshot) => {
var variable = snapshot.val();
var i;
for (i = 0; i < this.state.unavailable.length; i++){
if (variable.unavailable[i] == 0) {
console.log(variable);
}
}
});
或者在该代码块的上方添加一个变量,如下所示。
var self= this;
firebase.database().ref('recipes').orderByChild('custard'). equalTo(0).once('child_added', function(snapshot) {
var variable = snapshot.val();
var i;
for (i = 0; i < self.state.unavailable.length; i++){
if (variable.unavailable[i] == 0) {
console.log(variable);
}
}
});