Có nhiều cách để làm điều này. Cuối cùng, JSX được biên dịch thành JavaScript, miễn là bạn viết JavaScript hợp lệ, bạn sẽ ổn.
Câu trả lời của tôi nhằm củng cố tất cả những cách tuyệt vời đã được trình bày ở đây:
Nếu bạn không có một mảng đối tượng, chỉ cần số lượng hàng:
trong return khối, tạo Arrayvà sử dụng Array.prototype.map:
render() {
return (
<tbody>
{Array(numrows).fill(null).map((value, index) => (
<ObjectRow key={index}>
))}
</tbody>
);
}
bên ngoài returnkhối, chỉ cần sử dụng vòng lặp JavaScript bình thường:
render() {
let rows = [];
for (let i = 0; i < numrows; i++) {
rows.push(<ObjectRow key={i}/>);
}
return (
<tbody>{rows}</tbody>
);
}
ngay lập tức gọi biểu thức hàm:
render() {
return (
<tbody>
{() => {
let rows = [];
for (let i = 0; i < numrows; i++) {
rows.push(<ObjectRow key={i}/>);
}
return rows;
}}
</tbody>
);
}
Nếu bạn có một mảng các đối tượng
trong returnkhối, .map()mỗi đối tượng<ObjectRow> thành phần:
render() {
return (
<tbody>
{objectRows.map((row, index) => (
<ObjectRow key={index} data={row} />
))}
</tbody>
);
}
bên ngoài returnkhối, chỉ cần sử dụng vòng lặp JavaScript bình thường:
render() {
let rows = [];
for (let i = 0; i < objectRows.length; i++) {
rows.push(<ObjectRow key={i} data={objectRows[i]} />);
}
return (
<tbody>{rows}</tbody>
);
}
ngay lập tức gọi biểu thức hàm:
render() {
return (
<tbody>
{(() => {
const rows = [];
for (let i = 0; i < objectRows.length; i++) {
rows.push(<ObjectRow key={i} data={objectRows[i]} />);
}
return rows;
})()}
</tbody>
);
}