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

React JS mapping an array inside a state array

基本上我遇到了这个问题。我对 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>

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

您可以像映射之前的数组一样对其进行映射。

    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>
        ))

您需要使用更多 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