Ada beberapa cara untuk melakukan ini. JSX akhirnya dikompilasi ke JavaScript, jadi selama Anda menulis JavaScript yang valid, Anda akan baik-baik saja.
Jawaban saya bertujuan untuk menggabungkan semua cara indah yang telah disajikan di sini:
Jika Anda tidak memiliki array objek, cukup jumlah baris:
di dalam return
blok, membuat Array
dan menggunakan Array.prototype.map
:
render() {
return (
<tbody>
{Array(numrows).fill(null).map((value, index) => (
<ObjectRow key={index}>
))}
</tbody>
);
}
di luar return
blok, cukup gunakan JavaScript normal untuk-loop:
render() {
let rows = [];
for (let i = 0; i < numrows; i++) {
rows.push(<ObjectRow key={i}/>);
}
return (
<tbody>{rows}</tbody>
);
}
ekspresi fungsi segera dipanggil:
render() {
return (
<tbody>
{() => {
let rows = [];
for (let i = 0; i < numrows; i++) {
rows.push(<ObjectRow key={i}/>);
}
return rows;
}}
</tbody>
);
}
Jika Anda memiliki berbagai objek
di dalam return
blok, .map()
setiap objek ke <ObjectRow>
komponen:
render() {
return (
<tbody>
{objectRows.map((row, index) => (
<ObjectRow key={index} data={row} />
))}
</tbody>
);
}
di luar return
blok, cukup gunakan JavaScript normal untuk-loop:
render() {
let rows = [];
for (let i = 0; i < objectRows.length; i++) {
rows.push(<ObjectRow key={i} data={objectRows[i]} />);
}
return (
<tbody>{rows}</tbody>
);
}
ekspresi fungsi segera dipanggil:
render() {
return (
<tbody>
{(() => {
const rows = [];
for (let i = 0; i < objectRows.length; i++) {
rows.push(<ObjectRow key={i} data={objectRows[i]} />);
}
return rows;
})()}
</tbody>
);
}