为了账号安全,请及时绑定邮箱和手机立即绑定

如何动态显示数组数组?

如何动态显示数组数组?

jeck猫 2021-06-30 13:05:16
如何动态显示具有多个数组的数组。嵌套数组有多个对象。例如Var obj = [  [    {      name: "Test 1",      category: "Test 1"    },     {      name: "Test 2",      category: "Test 1"    },   ],  [    {      name: "Test 1",      category: "Test 2"    },     {      name: "Test 2",      category: "Test 2"    },   ]]那么我如何动态显示它并在我尝试过的反应组件中呈现它[下面]并且它工作完美并显示第一个数组对象,但我无法想出一种方法让它显示其余部分list = obj[0].map((e, index) => {     return (      <div key={index}>         <p>{e.name}</p>         <h6>{e.category}</h6>      </div>   )})      return (   <div>      {list}                </div>)
查看完整描述

1 回答

?
噜噜哒

TA贡献1784条经验 获得超7个赞

你有几个选择。


一种是显式循环遍历外部数组,然后遍历内部数组:


const list = obj.map(cat => cat.map((e, index) => {  

   return (

      <div key={index}>

         <p>{e.name}</p>

         <h6>{e.category}</h6>

      </div>

   )

}));      

这里的问题是index在页面上不会是唯一的。作为一般规则,无论如何您都不应该使用数组索引作为组件键。你最好使用类似的东西


   (

      <div key={`${e.name}-${e.category}`}>

         <p>{e.name}</p>

         <h6>{e.category}</h6>

      </div>

   )

另一种方法是展平数组:


const list = [].concat(...obj).map(e => (

  <div key={`${e.name}-${e.category}`}>

    <p>{e.name}</p>

    <h6>{e.category}</h6>

  </div>

);


查看完整回答
反对 回复 2021-07-08
  • 1 回答
  • 0 关注
  • 239 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信