React Native:未处理的承诺拒绝 [TypeError:undefined 不是一个对象(评估 'checkFav[0].name')]



每次输入此页面/首次加载应用程序时,我都会得到数据,除非我在android调试时尝试ctrl+s文件,否则应用程序运行良好。我该如何解决这个问题?Thx:(

过滤多维数组时出错,然后我调用已经过滤的数组名称

const userProfile = async () => {
let recipeId = props.route.params?.id ?? null;
// let recipeId = 3;
setGiveId(recipeId)
const list = await authAction.RecipeShow(recipeId);
setrefresh(list)
let dataShow = list.data;
setRecipeName(dataShow.name)
setImage(dataShow.imageUrl)
setDescription(dataShow.description)
let dataFav = await authAction.FavRecipe()
setData(dataFav.data)
setIsLoading(false)
let checkFav = ''
let check = []
if (data) {
checkFav = data.filter((item) => item.name === recipeName);
// try {
check[0] = checkFav[0].name;
// } catch (err) {
// userProfile()
// console.warn(err)
// }
} else if (data === 'empty') {
} else {
setData('empty')
}
console.log(check);
let listFav = [];
if (check === recipeName) {
listFav[0] = {
name: check,
favorite: true
}
} else if (check != recipeName) {
listFav[0] = {
name: check,
favorite: false
}
}
setIsFavorite(listFav[0].favorite)
}

checkFav似乎没有得到解决,或者checkFav不是您所期望的至少

checkFav = data.filter((item) => item.name === recipeName);

看起来这并没有解决任何问题,至少没有在你想要的地方。要改变它,你可以使用async wait或.then((链。类似于:

checkFav = data.filter((item) => item.name === recipeName)
.then(resp =>{ DO SOMETHING WHERE CHECKFAV IS NEEDED}).catch [...]

相关内容

最新更新