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?