在javascript中返回未定义的布尔函数?
我目前正在使用Firebase中存储的数据检查用户提交的解决方案是否正确。这涉及到在用户按下“提交”按钮时调用函数在javascript中返回未定义的布尔函数?,javascript,function,firebase,boolean,react-native,Javascript,Function,Firebase,Boolean,React Native,我目前正在使用Firebase中存储的数据检查用户提交的解决方案是否正确。这涉及到在用户按下“提交”按钮时调用函数getSolutionAndCompare。然而,出于某种原因,尽管checkSolution返回true到getSolutionAndCompare,但当我在onSubmitPressed中调用getSolutionAndCompare时,它的计算结果为未定义。知道我做错了什么吗 相关代码: onSubmitPressed: function() { var output
getSolutionAndCompare
。然而,出于某种原因,尽管checkSolution
返回true到getSolutionAndCompare
,但当我在onSubmitPressed
中调用getSolutionAndCompare
时,它的计算结果为未定义。知道我做错了什么吗
相关代码:
onSubmitPressed: function() {
var output = this.getSolutionAndCompare();
console.log('output ' + output); //this is returning undefined
if (this.getSolutionAndCompare()) {
Alert.alert(
'Correct',
"Woohoo!"
);
}
else {
Alert.alert(
'Incorrect Submission',
'Try again!',
);
}
},
getSolutionAndCompare: function() {
var databaseSolution;
solutionsRef.orderByChild('question_id').equalTo(Number(this.props.questionId)).once('value', (snap) => {
var solution = snap.val();
for (var key in solution) {
databaseSolution = solution[key].solution;
}
return this.checkSolution(databaseSolution); //checkSolution returns true here
});
},
checkSolution: function(databaseSolution) {
if (this.state.submission == databaseSolution) {
return true;
}
else {
return false;
}
},
getSolutionAndCompare
没有return
语句,因此它返回undefined
,因为这是默认值
(您在
getSolutionAndCompare
中声明的匿名箭头函数有一个return语句,但它看起来无法返回其值)。您希望在solution
中保存什么样的数据<代码>变量解决方案=snap.val()?继续迭代解决方案
对象,但只检查return语句中的最终值。编辑-该返回语句似乎没有返回getSolutionAndCompare
方法,因此该方法返回undefined
solutionsRef.orderByChild('question_id').equalTo(Number(this.props.questionId))。once('value',(snap)=>{
--这是一个异步调用吗?无论哪种方式,您都返回一个内部函数,这不是您想要的。