地图 React.js 中的 for 循环

Posted

技术标签:

【中文标题】地图 React.js 中的 for 循环【英文标题】:For loop inside map React.js 【发布时间】:2019-05-12 09:45:09 【问题描述】:

说明

所以我有一个这样的数组:

const CategoriesList = [
    nameNL:'bakkerij', 
     nameFR:'boulangerie', 
     nameEN:'bakery', 
     nameDE:'Bäckerei', 
     categories: [
        nameNL:'bakkerij', nameFR:'boulangerie', nameEN:'bakery', nameDE:'Bäckerei',
        nameNL:'bier', nameFR:'la bière', nameEN:'beer', nameDE:'Bier',
    ],
]

而且我可以轻松地映射我的所有项目。然而;在该地图函数中,我想在 categorieslist 内的 categories 数组 之间循环。我试图这样做,但显然我不能在我的地图中使用 for 循环。

问题

如何在地图函数中循环对象。

我有什么

 CategoriesList.map((nameNL, nameFR, nameEN, nameDE, categories, index) => 
    return (
        <div key=index className='flxRow'>
            <div className=['flxCell', 'flxCol2'].join(' ')>nameNL</div>
            <div className=['flxCell', 'flxCol2'].join(' ')>nameFR</div>
            <div className=['flxCell', 'flxCol2'].join(' ')>nameEN</div>
            <div className=['flxCell', 'flxCol2'].join(' ')>nameDE</div>
            
                for (i = 0; i < categories.length; i++)  
                    console.log(categories[i].name)
                
            
        </div>  
))

【问题讨论】:

你使用另一个map 【参考方案1】:

你可以使用另一个map

 CategoriesList.map((nameNL, nameFR, nameEN, nameDE, categories, index) => 
    return (
        <div key=index className='flxRow'>
            <div className=['flxCell', 'flxCol2'].join(' ')>nameNL</div>
            <div className=['flxCell', 'flxCol2'].join(' ')>nameFR</div>
            <div className=['flxCell', 'flxCol2'].join(' ')>nameEN</div>
            <div className=['flxCell', 'flxCol2'].join(' ')>nameDE</div>
            
                categories.map(category => ...)
            
        </div>  
))

我也推荐阅读keys

【讨论】:

做到了;谢谢! & 我明白你对键部分的意思。【参考方案2】:
const CategoriesList = [
nameNL:'bakkerij', 
 nameFR:'boulangerie', 
 nameEN:'bakery', 
 nameDE:'Bäckerei', 
 categories: [
    nameNL:'bakkerij', nameFR:'boulangerie', nameEN:'bakery', nameDE:'Bäckerei',
    nameNL:'bier', nameFR:'la bière', nameEN:'beer', nameDE:'Bier',
],

]

const result = CategoriesList.map(item => 
 return item.categories.map(item2 => 
   return (
    console.log(item2.nameNL));
  )
 );

工作:

https://codepen.io/anildelhi/pen/YdPmvL?editors=1111

【讨论】:

【参考方案3】: 新闻 API 具有 JSON 数据,例如:- 数据: [ 描述:“虚拟描述。”,thumbnail_img_path:“images.jpg”,video_path:“Z9xBo001urjkd” , 描述:“dummy desc2.”,thumbnail_img_path:“images-thumnail-1.jpg”,video_path:“jklbtt2of8” ]
news.map((item,i) => (   
                    
                    <div key=i>
                    
                        item.data.map((data, index) => (  //console.log(data.Description)) )                        
                        <div key=index>
                            <div className="panel video-thumbnail" >
                            <img className="img-fluid"  src=data.thumbnail_img_path  ytid=data.video_path />
                            <div className="img-overlay">
                            <a href="#"><img src="../micro-assets/img/video-play.svg"  /></a>
                             </div>
                            </div>  
                        </div>
                        ))
                    
                </div>                       
                ))                                  
        

【讨论】:

以上是关于地图 React.js 中的 for 循环的主要内容,如果未能解决你的问题,请参考以下文章

如何在react.js 中利用for循环之类的输出html

如何在react.js 中利用for循环之类的输出html

如何使用基于范围的 for 循环修改地图中的值?

如何使用 for 循环在 React 中的地图上渲染标记?

标记组件未显示在 React JS 中的 Google 地图上

TypeError:无法读取未定义的属性(读取“地图”),以及 React.js 中的多个 API 请求