renderItems(game){
if (game.category_id === 2) {
ownedGames.map((owned_game) => {
if (owned_game.game_id === game.game_id) {
renderPriceSection = renderOwned
console.log(owned_game.game_title)
} else {
renderPriceSection = renderPrice
}
})
} else {
renderPriceSection = renderFreeToPlayTitle
}
}
...
return(
{renderPriceSection}
)
我想展示一些標籤中只顯示最後一個項目:Owned
,$Price
,Free
反應陣列
的console.log
顯示了所有正確的遊戲應該有Owned
標籤。
但是,在頁面上,Owned
標籤爲只顯示owned_games
陣列中的最後一個項目。
任何想法爲什麼會發生這種情況?
編輯:
我刪除了renderItems()
功能,取而代之{renderPriceSection}
本:
{game.category_id === 2 ?
ownedGames.map(owned_game =>
owned_game.game_id === game.game_id ? renderOwned : renderPrice
) :
renderFreeToPlayTitle
}
現在renderOwned
和renderPrice
正在顯示owned_games.length
次,每個項目。
所以,現在我在錯誤的輸出對面:))
發生這種情況的原因是renderPriceSection在每次映射迭代時都被覆蓋。此外,這不是一個正確的方式來使用地圖,地圖返回一個數組,如果你顯示你的數組看起來像什麼和你的預期輸出可能我們可以更好地幫助 –
由於標籤只顯示最後一個項目,我想着同樣的事情。它覆蓋了它。但想不到更好的方式來做到這一點。 –
我使用'map'而不是for循環。我更新了這個問題。 –