React Native UseEffect在调用函数时陷入循环



我试图根据用户的触摸事件更新状态,然后我使用useEffect来尝试调用一个函数,它更新另一个状态,以便它可以通过使用导航传递到下一个屏幕。

问题是我陷入了一个循环,我不知道为什么。它应该只在selectedSet更新时调用。

const [pokemonCards, setPokemonCards] = useState([]);
const [selectedSet, setSelectedSet] = useState("");
useEffect(() => {
const getPokemonCards = () => {
PokemonTCG.findCardsByQueries({ q: 'set.id:' + selectedSet, pageSize: 10 }).then(
(cards) => {
console.log("cards: ", cards)
setPokemonCards(cards);
}
)
}
getPokemonCards();
}, [selectedSet]);

<TouchableHighlight key={pokemonSet.id} onPress = {() => {
setSelectedSet(pokemonSet.id);
navigation.navigate("SetDetails", { setID: pokemonSet.id, pokemonSetDetails: pokemonSet, pokemonCards: pokemonCards });
}}>

useEffect重新获取口袋妖怪卡牌,创建新的pokemontSet对象,用"new"选择pokemonSet.id。因为selectedId被改变了,所以效果被触发了。

相关内容

  • 没有找到相关文章

最新更新