代码之家  ›  专栏  ›  技术社区  ›  GregH

React:将javascript与jsx混合

  •  0
  • GregH  · 技术社区  · 7 年前

    renderNewsItems = newsItems => {
        return(
            newsItems.map(newsItem => 
            <NewsItem title={newsItem.title} imageUrl={newsItem.imageUrl} />)
        );
      }
    

    但是,当我尝试将标记添加到单个布局时,这很好 <NewsItem /> 组件,我正在努力找出如何让它工作。我当前的失败尝试如下所示:

    renderNewsItems = newsItems => {
        return(
            <div className="row">
                newsItems.map(newsItem => 
                <div className="col-4">
                    <NewsItem title={newsItem.title} imageUrl={newsItem.imageUrl} />
                </div>
            </div>
        );
      }
    

    这会导致错误:

    未定义“newsItem”无未定义

    如果不清楚的话,我会尝试使用引导网格系统来设置我个人的布局 <NewsItem/> 应该渲染组件

    1 回复  |  直到 7 年前
        1
  •  2
  •   Arup Rakshit    7 年前

    你很接近。写下来:

    renderNewsItems = newsItems => {
      return (
        <div className="row">
          {newsItems.map(newsItem => (
            <div className="col-4">
              <NewsItem
                key={newsItem.id}
                title={newsItem.title}
                imageUrl={newsItem.imageUrl}
              />
            </div>
          ))}
        </div>
      );
    };
    

    注:我想你有 id 财产 newsItem . 如果你没有,你可以用 title 太像 key 值,直到它们在所有数组元素中都是uniq。