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}
)
にのみ最後の項目が表示されている反応:は、私はいくつかのラベルを表示しようとしている配列
console.log
Free
がすべて正しいのゲームを表示しているOwned
、$Price
、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が上書きされるために発生します。また、これはマップを使用する正しい方法ではありません、マップは配列を返します。配列がどのように見えるか、期待される出力が何かを示すならば、おそらく助けてくれるでしょう。 –
ラベルは最後のアイテム同じことを考えていた。それがそれを上書きしていること。しかし、これを行うより良い方法を考えることはできません。 –
私はforループの代わりに 'map'を使用しています。私は質問を更新しました。 –