如何在React Js中集成array.map

时间:2019-02-05 20:39:02

标签: javascript reactjs

这是我的Jason数据和代码,我正在使用map()填充我的数据,但出现了一些错误,下面是我的代码

var data = [
  {
    categorytitle: "Shoes",
    category: [
      {
        Category1: "Boots"
      },
      {
        Category2: "Sneakers"
      },
      {
        Category3: "Flats"
      },
      {
        Category4: "Booties"
      },
      {
        Category5: "Mules"
      },
      {
        Category6: "Heels/Pumps"
      },
      {
        Category7: "Clogs"
      },
      {
        Category8: "Slippers"
      },
      {
        Category9: "Sandals"
      },
      {
        Category10: "Sale"
      },
      {
        Category11: "Shop All"
      }
    ]
  }
];

也请在下面找到填充代码...

{data.map((el, e) => (
                    <div {...el} key={e}>
                      <h3>{el.categorytitle}</h3>
                      <ul>
                        <li>{el.category[e]}</li>
                      </ul>
                    </div>
                  ))}

请指导我如何在列表中显示Category1 ....

3 个答案:

答案 0 :(得分:1)

您可以执行以下操作

   {data.map((ele, index) => (
                <div key={"Key-"+index}>
                  <h3>{ele.categorytitle}</h3>
                  <ul>
                    {Array.isArray(ele.category) && ele.category.map((d, i) => (<li key={"Key-"+i}>{d[`Category${i+1}`]}
                    </li>))}
                  </ul>
                </div>
              ))}

答案 1 :(得分:0)

尝试类似的方法:您需要遍历category数组

data[0].category.map((el, i) => {
    console.log(el['Category' + i++])
    console.log(i)
    return el['Category' + i++];
})

答案 2 :(得分:0)

const data = [{
  categorytitle: "Shoes",
  category: [{
      Category1: "Boots"
    },
    {
      Category2: "Sneakers"
    },
    {
      Category3: "Flats"
    },
    {
      Category4: "Booties"
    },
    {
      Category5: "Mules"
    },
    {
      Category6: "Heels/Pumps"
    },
    {
      Category7: "Clogs"
    },
    {
      Category8: "Slippers"
    },
    {
      Category9: "Sandals"
    },
    {
      Category10: "Sale"
    },
    {
      Category11: "Shop All"
    }
  ]
}];

const category = data.forEach(({
  category
}) => {
  Object.values(category).map((value, index) => {
    console.log(value[`Category${index +1 }`]);
  })
});

对于React JSX,它应该类似于:

{data.forEach(({ category }) => {
      Object.values(category).map((value, index) => {
        <span> {value[`Category${index + 1}`]} </span>;
      });
    })}