Ich versuche, eine jQuery-Komponente in React.js zu konvertieren, und eines der Dinge, mit denen ich Schwierigkeiten habe, ist das Rendern von n Elementen basierend auf einer for-Schleife.
Ich verstehe, dass dies nicht möglich oder empfohlen ist und dass die Verwendung eines Arrays im Modell durchaus sinnvoll ist map
. Das ist in Ordnung, aber was ist, wenn Sie kein Array haben? Stattdessen haben Sie einen numerischen Wert, der einer bestimmten Anzahl von zu rendernden Elementen entspricht. Was sollten Sie dann tun?
Hier ist mein Beispiel: Ich möchte einem Element eine beliebige Anzahl von Span-Tags voranstellen, basierend auf seiner Hierarchieebene. Auf Ebene 3 möchte ich also 3 Span-Tags vor dem Textelement.
In Javascript:
for (var i = 0; i < level; i++) {
$el.append('<span class="indent"></span>');
}
$el.append('Some text value');
Ich kann das oder etwas Ähnliches nicht verstehen, um in einer JSX React.js-Komponente zu arbeiten. Stattdessen musste ich Folgendes tun, zuerst ein temporäres Array mit der richtigen Länge erstellen und dann das Array in einer Schleife durchlaufen.
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"
...
);
}
Sicherlich kann dies nicht der beste oder einzige Weg sein, dies zu erreichen? Was vermisse ich?