Próbuję przekonwertować składnik jQuery do React.js i jedną z rzeczy, z którymi mam problem, jest renderowanie n liczby elementów w oparciu o pętlę for.
Rozumiem, że nie jest to możliwe lub zalecane, a jeśli w modelu istnieje tablica, jej użycie ma sens map
. W porządku, ale co, jeśli nie masz tablicy? Zamiast tego masz wartość liczbową, która jest równa określonej liczbie elementów do renderowania, więc co powinieneś zrobić?
Oto mój przykład, chcę poprzedzić element dowolną liczbą tagów span w oparciu o jego poziom hierarchiczny. Tak więc na poziomie 3 chcę 3 znaczniki span przed elementem tekstowym.
W javascript:
for (var i = 0; i < level; i++) {
$el.append('<span class="indent"></span>');
}
$el.append('Some text value');
Nie mogę uzyskać tego ani niczego podobnego do pracy w komponencie JSX React.js. Zamiast tego musiałem wykonać następujące czynności, najpierw zbudować tablicę tymczasową o odpowiedniej długości, a następnie zapętlić tablicę.
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"
...
);
}
Z pewnością nie może to być najlepszy lub jedyny sposób na osiągnięcie tego? czego mi brakuje?