Tôi đang cố gắng chuyển đổi một thành phần jQuery thành React.js và một trong những điều tôi gặp khó khăn là hiển thị n số phần tử dựa trên vòng lặp for.
Tôi hiểu điều này là không thể, hoặc được khuyến nghị và khi một mảng tồn tại trong mô hình thì nó hoàn toàn có ý nghĩa để sử dụng map
. Điều đó tốt, nhưng khi bạn không có một mảng thì sao? Thay vào đó, bạn có giá trị số tương đương với một số phần tử nhất định để hiển thị, vậy bạn nên làm gì?
Dưới đây là ví dụ của tôi, tôi muốn tiền tố một phần tử với số lượng thẻ nhịp tùy ý dựa trên mức phân cấp của nó. Vì vậy, ở cấp 3, tôi muốn 3 thẻ span trước phần tử văn bản.
Trong javascript:
for (var i = 0; i < level; i++) {
$el.append('<span class="indent"></span>');
}
$el.append('Some text value');
Tôi dường như không thể có được điều này, hoặc bất cứ điều gì tương tự để hoạt động trong thành phần JSX React.js. Thay vào đó tôi phải làm như sau, đầu tiên xây dựng một mảng tạm thời với độ dài chính xác và sau đó lặp lại mảng đó.
React.js
render: function() {
var tmp = [];
for (var i = 0; i < this.props.level; i++) {
tmp.push(i);
}
var indents = tmp.map(function (i) {
return (
<span className='indent'></span>
);
});
return (
...
{indents}
"Some text value"
...
);
}
Chắc chắn đây không phải là cách tốt nhất, hay là cách duy nhất để đạt được điều này? Tôi đang thiếu gì?