【发布时间】:2019-03-15 21:56:06
【问题描述】:
按下按钮时,我的 App 调用 handlePress 函数,该函数从数组中返回随机对象。
handlePress 功能:
handlePress = () => {
this.setState({
vitamin: getRandomIngredient(vitaminArray),
}, ()=> matchMealPreference())
}
如果我用 console.log() 替换 matchMealPreference() 就可以了。
设置新状态后,我想立即用粗箭头调用另一个函数。否则我会遇到异步问题。
matchMealPreference 函数如下所示:
matchMealPreference = () => {
if(this.props.mealPreference === this.state.protein.getIngredientFlag()){
return state
} else {
handlePress()
}
}
从数组中获取随机对象的函数:
function getRandomIngredient (arr){
if (arr && arr.length) {
return arr[Math.floor(Math.random() * arr.length)];
}
}
我得到错误:
reference error. matchMealPreference is not defined
我几乎可以肯定我错过了一些琐碎的事情。但是我已经被这个问题困扰了一天多,所以我想我会向你寻求帮助。
是否有其他方法可以调用 matchMealPrefence 而不会出现异步问题?
是否可以在调用 matchMealPreference 的位置调用函数?
在 matchMealPrefence 函数中再次调用 handlePress 函数是否不明智?
非常感谢任何帮助
编辑:Vijay Menon 的回答是正确的。我需要添加“这个”。谢谢!
【问题讨论】: