JSX에서 속성이 있는 객체 목록 표시
P粉486743671
2023-09-02 21:38:43
<p>내 React 구성요소에 다음 코드가 있습니다: </p>
<pre class="brush:php;toolbar:false;"><div className="mainApp">
<div className="pkgsList">
{pkgData.map((p) =>
<h3 키={p.name}>{p.name}</h3>
)}
</div>
</div>
)</pre>
<p>이 경우 <code>pkgData</code>는 이 시나리오에서 패키지를 설명하려고 시도하는 개체 배열입니다. 각 개체에는 문자열 속성 <code>name</code> 및 배열 속성 <code>sources</code>가 포함되어 있으며, 여기서 각 항목은 개체이기도 합니다. <code>h3</code> 요소 아래의 <code>sources</code> 항목을 인쇄하고 싶지만 항목을 추가하는 방법을 알 수 없습니다. 위의 다중 HTML/JSX - 어떤 도움이라도 대단히 감사하겠습니다. </p>
<p>각 p에 대해 지도를 호출하려고 했지만, 예를 들어 <code>()</code> 또는 그냥 <code>{}</code> 오류가 발생합니다</p>
<pre class="brush:php;toolbar:false;">{p.map((s) => {
})</pre>
<p>따라서 생성된 div 코드는 다음과 같습니다. </p>
<pre class="brush:php;toolbar:false;"><div className="pkgList">
{pkgData.map((p) =>
<h3 키={p.name}>{p.name}</h3>
{p.map((c) => {
})
)}
<p>내 React 앱이 성공적으로 컴파일될 수 없습니다. </p>
일반 구성요소와 마찬가지로 맵에서는 jsx 요소 1개만 반환할 수 있습니다. 지도 함수에서 여러 요소를 렌더링하려면 다음과 같이 반응 조각으로 코드를 래핑할 수 있습니다.
으아악지도 오류
우선,
으아악pkgData.map
안에 중첩된 지도가 잘못되었습니다.p
자체는 배열이 아니기 때문입니다. 지도는 다음과 같아야 합니다.JSX 오류
둘째, @David가 댓글에서 말했듯이 JSX가 내부적으로 작동하는 방식으로 인해 여러 개의 최상위 요소를 가질 수 없습니다. 예를 들어 코드
으아악이것과 동일
으아악따라서 최상위 수준에서 여러 JSX 요소를 반환하면 React.createElement가 작동하지 않습니다. 따라서 조각(), div 등과 같은 일부 태그를 사용하여 최상위 수준에서 콘텐츠를 래핑해야 합니다.
예를 들어
으아악참고용: https://react.dev/reference /react/createElement#creating-an-element-without-jsx