如何在 JSX 中映射数组的数组

Posted

技术标签:

【中文标题】如何在 JSX 中映射数组的数组【英文标题】:How to map over arrays of arrays in JSX 【发布时间】:2020-07-13 07:17:17 【问题描述】:

我有一个名称列表作为数组。然后将这些名称配对到我的 App.js 中的一个数组中

我正在寻找映射这些以创建<ul> containing <li>s,但我被困住了,任何帮助都会很棒,谢谢!

不幸的是,像这样的数组上的常规映射不起作用...谢谢!

return (
    <ul>
      pairs.map(pair => (
        <li key=pair>pair</li>
      ))
    </ul>
  );

<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>


createPairs() 
    const list = [...this.state.list];

    list.sort(() => 0.5 - Math.random());

    const pairs = [];


    while (list.length >= 2) 
      const pair = [list.pop(), list.pop()];

      pairs.push(pair);
    

    this.setState(
      pairs
    );
  

【问题讨论】:

一件重要的事情,你想如何在列表中显示成对的名字? 所以这将是每对中每个人的名字。例如。 this.state.pairs ? null : console.log(this.state.pairs) ( this.state.pairs.map(pairs => ( 对人 1 对人 2 )) ) 【参考方案1】:

您可以在 map 参数中使用 destructuring 来提取每对的组件。记得将解构的参数用括号括起来。

return (
  <ul>
    pairs.map(([pair_1, pair_2]) => (
      <li key=pair_1>pair_1</li>
    ))
  </ul>
);

【讨论】:

以上是关于如何在 JSX 中映射数组的数组的主要内容,如果未能解决你的问题,请参考以下文章

如何在反应中从数组中映射出预加载的图像?

存储在动态对象中的 JSX 映射数组 (Next.js)

REACT JS:映射要在 JSX 中呈现的对象数组

如何在 React (JSX) 中清除/重置状态内的数组

如何使用带有条件包装的 map() 函数在 JSX 中呈现数组条目

如何在 React JSX 中循环遍历数组中的某些项目 [重复]