首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >react仅显示数组中的最后一个项。

react仅显示数组中的最后一个项。
EN

Stack Overflow用户
提问于 2017-08-25 09:41:24
回答 4查看 2.6K关注 0票数 0
代码语言:javascript
复制
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$PriceFree

console.log正在显示所有应该具有Owned标签的正确游戏。

但是,在页面上,Owned标签是,仅显示在owned_games数组中的最后一个项

知道为什么会这样吗?

编辑:

我删除了renderItems()函数并用以下内容替换了{renderPriceSection}

代码语言:javascript
复制
    {game.category_id === 2 ?
        ownedGames.map(owned_game =>
            owned_game.game_id === game.game_id ? renderOwned : renderPrice
        ) :
        renderFreeToPlayTitle
    }

现在,renderOwnedrenderPrice被显示为每个项目的owned_games.length时间。

所以,现在我在错误输出的oposite方面:))

EN

回答 4

Stack Overflow用户

发布于 2017-08-25 09:54:26

由于您在每一个其他迭代中修改相同的renderPriceSection引用,所以您并不是在创建一个新的对象。

票数 1
EN

Stack Overflow用户

发布于 2017-08-25 09:49:32

Array.map返回另一个数组。在您的map函数中,似乎没有返回任何内容。而且,还不清楚renderPriceSelection应该是什么。

代码语言:javascript
复制
renderPriceSelection = ownedGames.map((owned_game) => {
  if (owned_game.game_id === game.game_id) {
    return renderOwned
  } else {
    return renderPrice
  }
})

render {renderPriceSelection}
票数 0
EN

Stack Overflow用户

发布于 2017-08-25 09:54:41

从这段代码中还不完全清楚,但在我看来,每次迭代时都重写变量renderPriceSection,这就是为什么renderItems每次返回最后一个元素的原因

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45878629

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档