React JS 在状态数组中映射数组

Posted

技术标签:

【中文标题】React JS 在状态数组中映射数组【英文标题】:React JS mapping an array inside a state array 【发布时间】:2021-07-17 10:37:02 【问题描述】:

所以基本上我有这个问题。我对 React JS 比较陌生。我已经创建了一个状态并且我已经成功地映射了它,除了一件事。下面是状态:

const [currProject, setCurrProject] = useState([
            id: 4,
            title: "Title",
            desc: "Description",
            arr: ["these", "are", "array", "elements"]]);

那么,就像我说的,我这样映射:

currProject.map(item =>(
     <div>
          <h1>item.title</h1>
          <p>item.desc</p>
          <div>
               <p>item.arr</p>
          </div>
     </div>
        ))

所以基本上p标签在哪里,我想将currProject状态的数组中的元素放在单独的p标签中。所以它看起来像这样:

<p>these</p>
<p>are</p>
<p>array</p>
<p>elements</p>

但显然我不想硬编码。因为该数组中可能有更多或更少的元素。基本上我要问的是如何映射一个已经在状态数组中的数组?

【问题讨论】:

【参考方案1】:

您可以像映射前一个数组一样映射它。

    currProject.map((item, i) =>(
         <div key=i>
              <h1>item.title</h1>
              <p>item.desc</p>
              <div>
                   item.arr.map((item, i) => (
                    <p key=i>item</p>
                   ))
              </div>
         </div>
        ))

【讨论】:

【参考方案2】:

你需要使用更多map来渲染item.arr。

  currProject.map((item) => (
    <div key=item.id>
      <h1>item.title</h1>
      <p>item.desc</p>
      <div>
        item.arr.map((item2, index) => (
          <p key=index>item2</p>
        ))
      </div>
    </div>
  ))

注意:你需要在map内的第一个标签中添加一个key

【讨论】:

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

React:处理映射状态

map 函数没有在 react.js 中迭代状态对象(数组格式)

如何映射一组对象,删除一个并将我的状态设置为 react-native 中的新数组?

如何在 React js 中创建状态数组

React JS:数组未传递给状态

正确修改 React.js 中的状态数组