map()
@FakeRainBrigand의 답변 을 좋아 하는 배열이없는 경우 소스 레이아웃이 @SophieAlpert의 답변보다 가까운 출력에 해당하도록 인라인하려는 경우 :
ES2015 (ES6) 구문 사용 (확산 및 화살표 기능)
http://plnkr.co/edit/mfqFWODVy8dKQQOkIEGV?p=preview
<tbody>
{[...Array(10)].map((x, i) =>
<ObjectRow key={i} />
)}
</tbody>
재 : 바벨과 transpiling, 그것의 주의 사항 페이지 가 말한다 Array.from
확산을 위해 필요하지만 현재 ( v5.8.23
) 실제를 확산 할 때 경우 될 것 같지 않습니다 Array
. 그것을 명확히하기 위해 문서 문제가 열려 있습니다. 그러나 자신의 위험이나 폴리 필로 사용하십시오.
바닐라 ES5
Array.apply
<tbody>
{Array.apply(0, Array(10)).map(function (x, i) {
return <ObjectRow key={i} />;
})}
</tbody>
인라인 IIFE
http://plnkr.co/edit/4kQjdTzd4w69g8Suu2hT?p=preview
<tbody>
{(function (rows, i, len) {
while (++i <= len) {
rows.push(<ObjectRow key={i} />)
}
return rows;
})([], 0, 10)}
</tbody>
다른 답변의 기술 조합
소스 레이아웃을 출력에 맞게 유지하지만 인라인 된 부분을보다 간결하게 만듭니다.
render: function () {
var rows = [], i = 0, len = 10;
while (++i <= len) rows.push(i);
return (
<tbody>
{rows.map(function (i) {
return <ObjectRow key={i} index={i} />;
})}
</tbody>
);
}
ES2015 구문 및 Array
메소드
으로 Array.prototype.fill
당신이 전파를 사용하는 대신이 작업을 수행 할 수있는 위의 그림과 같이 :
<tbody>
{Array(10).fill(1).map((el, i) =>
<ObjectRow key={i} />
)}
</tbody>
(실제로에 대한 인수를 생략 할 수 있다고 생각 fill()
하지만 100 %는 아닙니다.) 이전 버전의 fill()
솔루션 에서 실수를 수정 한 @FakeRainBrigand에게 감사드립니다 (개정판 참조).
key
모든 경우에 key
attr은 개발 빌드에 대한 경고를 완화하지만 자식에서는 액세스 할 수 없습니다. 자식에서 인덱스를 사용할 수있게하려면 추가 속성을 전달할 수 있습니다. 자세한 내용은 목록 및 키 를 참조하십시오 .