2 回答
TA貢獻(xiàn)1757條經(jīng)驗(yàn) 獲得超7個(gè)贊
首先,請(qǐng)檢查您在 處獲得的“id”是什么const {id} = useParams();。
然后,請(qǐng)檢查您從 獲取的“allPokemons”是什么const allPokemons = useSelector(state => state.AllPokemons);。如果“allPokemons”是一個(gè)對(duì)象,則將const thisPokemon = allPokemons.map(pokemon => pokemon.id === id)無法正常工作。此地圖邏輯僅在“allPokemons”是一個(gè)數(shù)組時(shí)才有效。
最后,請(qǐng)檢查“id”中的數(shù)據(jù)類型pokemon.id === id?!癷d”可以是字符串類型,但如果“pokemon.id”是數(shù)字類型,則檢查將失敗,即使“id”正確。例如,10 === "10"是false。如果是這種情況,您可以用parseInt(id)函數(shù)包裝“id”。
TA貢獻(xiàn)1872條經(jīng)驗(yàn) 獲得超4個(gè)贊
嘗試
allPokemons.find(pokemon => pokemon.id === id)
編輯:地圖和過濾器將始終返回一個(gè)數(shù)組。因此,如果我們只想要一項(xiàng),我們應(yīng)該使用 array.find
添加回答
舉報(bào)
