Я намагаюся перетворити компонент jQuery в React.js, і однією з речей, з якими я зіткнувся, є надання n кількості елементів на основі циклу for.
Я розумію, що це неможливо або не рекомендується, і там, де в моделі існує масив, це має повний сенс використовувати map
. Це добре, але що робити, коли у вас немає масиву? Натомість у вас є числове значення, яке прирівнюється до заданої кількості елементів для візуалізації, то що робити?
Ось мій приклад, я хочу встановити префікс елемента з довільною кількістю проміжок тегів на основі його ієрархічного рівня. Отже, на рівні 3 я хочу 3 тегів прольоту перед текстовим елементом.
У JavaScript:
for (var i = 0; i < level; i++) {
$el.append('<span class="indent"></span>');
}
$el.append('Some text value');
Я не можу зрозуміти, що це чи щось подібне до роботи в компоненті JSX React.js. Натомість мені довелося виконати наступне: спочатку побудуйте тимчасовий масив до потрібної довжини, а потім обведіть масив.
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"
...
);
}
Звичайно, це не може бути найкращим чи єдиним способом цього досягти? Що я пропускаю?