Sto provando a convertire un componente jQuery in React.js e una delle cose con cui ho difficoltà è il rendering di n numero di elementi basato su un ciclo for.
Capisco che questo non è possibile o consigliato e che laddove esiste un array nel modello ha perfettamente senso utilizzarlo map. Va bene, ma che dire di quando non si dispone di un array? Invece hai un valore numerico che equivale a un determinato numero di elementi da rendere, quindi cosa dovresti fare?
Ecco il mio esempio, voglio aggiungere un prefisso a un elemento con un numero arbitrario di tag span in base al suo livello gerarchico. Quindi a livello 3, voglio 3 tag span prima dell'elemento di testo.
In javascript:
for (var i = 0; i < level; i++) {
$el.append('<span class="indent"></span>');
}
$el.append('Some text value');
Non riesco a ottenere questo o qualcosa di simile al lavoro in un componente JSX React.js. Invece ho dovuto fare quanto segue, prima costruendo un array temporaneo della lunghezza corretta e quindi eseguendo il looping dell'array.
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"
...
);
}
Sicuramente questo non può essere il migliore o l'unico modo per raggiungere questo obiettivo? Cosa mi sto perdendo?