Я пытаюсь преобразовать компонент jQuery в React.js, и одна из вещей, с которыми я сталкиваюсь, - это рендеринг n числа элементов на основе цикла for.
Я понимаю, что это невозможно, или рекомендуется, и что там, где существует массив в модели, имеет смысл использовать map
. Это прекрасно, но как насчет того, когда у вас нет массива? Вместо этого у вас есть числовое значение, которое приравнивается к заданному количеству элементов для рендеринга, то что вы должны делать?
Вот мой пример, я хочу префикс элемента с произвольным числом тегов span на его иерархическом уровне. Таким образом, на уровне 3, я хочу 3 тега span перед текстовым элементом.
В javascript:
for (var i = 0; i < level; i++) {
$el.append('<span class="indent"></span>');
}
$el.append('Some text value');
Кажется, я не могу это получить, или что-то похожее на работу в компоненте JAX React.js. Вместо этого мне пришлось сделать следующее: сначала построим массив temp на нужную длину, а затем зациклируем массив.
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"
...
);
}
Неужели это не может быть лучшим или единственным способом добиться этого? Что мне не хватает?