【发布时间】:2021-12-04 07:09:54
【问题描述】:
我正在尝试在我的 react 本机代码中包含一个收藏夹机制,但我遇到了一个问题:
当页面首先呈现时,favs.includes 函数按预期工作。但是当我点击收藏按钮时,它会引发错误
TypeError: favs.includes is not a function. (In 'favs.includes(id)', 'favs.includes' is undefined)
const getFavs = async () => {
await AsyncStorage.getItem("favs").then((res) => {
if (res !== [] && res !== null && res !== "") {
return setFavs(JSON.parse(res));
} else {
return setFavs([]);
}
});
};
useEffect(() => {
getFavs();
console.log(favs.includes(id));
return console.log(typeof favs);
}, []);
return (
<View style={{ alignItems: "center", justifyContent: "center" }}>
{favs.includes(id) ? (
<TouchableOpacity
onPress={() => {
AsyncStorage.removeItem("favs", id);
}}
>
<Icon name="star" size={25} color="orange" solid />
</TouchableOpacity>
) : (
<TouchableOpacity
style={{ height: 100, width: 100, backgroundColor: "red" }}
onPress={() => {
console.log(typeof favs);
setFavs(favs.push(id));
console.log(typeof favs);
AsyncStorage.setItem("favs", JSON.stringify(favs));
setFav(true);
}}
>
<Icon name="star" size={25} color="orange" />
</TouchableOpacity>
)}
</View>
);
【问题讨论】:
标签: javascript react-native use-state asyncstorage