Estoy tratando de convertir un componente jQuery a React.js y una de las cosas con las que tengo dificultades es representar un número n de elementos basados en un bucle for.
Entiendo que esto no es posible o recomendado y que cuando existe una matriz en el modelo, tiene mucho sentido usarla map
. Eso está bien, pero ¿qué pasa cuando no tienes una matriz? En cambio, tiene un valor numérico que equivale a un número dado de elementos para representar, entonces, ¿qué debe hacer?
Aquí está mi ejemplo, quiero prefijar un elemento con un número arbitrario de etiquetas de extensión según su nivel jerárquico. Entonces, en el nivel 3, quiero 3 etiquetas de extensión antes del elemento de texto.
En javascript:
for (var i = 0; i < level; i++) {
$el.append('<span class="indent"></span>');
}
$el.append('Some text value');
Parece que no puedo obtener esto, o algo similar para trabajar en un componente JSX React.js. En cambio, tuve que hacer lo siguiente, primero construyendo una matriz temporal a la longitud correcta y luego haciendo un bucle de la matriz.
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"
...
);
}
¿Seguramente esta no puede ser la mejor o la única forma de lograrlo? ¿Qué me estoy perdiendo?