Lus binnen React JSX
Ik'probeer iets als het volgende te doen in React JSX
(waarbij ObjectRow een aparte component is):
<tbody>
for (var i=0; i < numrows; i++) {
<ObjectRow/>
}
</tbody>
Ik realiseer me en begrijp waarom dit JSX
niet geldig is, aangezien JSX
naar functie-aanroepen mapt. Echter, komend uit template land en nieuw in JSX
, ben ik niet zeker hoe ik het bovenstaande zou kunnen bereiken (een component meerdere keren toevoegen).
1126
3
Zie het als het aanroepen van JavaScript functies. Je kunt geen
for
lus gebruiken waar de argumenten van een functie-aanroep heen zouden gaan:Zie hoe de functie
tbody
eenfor
lus als argument krijgt doorgegeven, en dat'is natuurlijk een syntaxis fout.Maar je kunt een array maken, en dat dan als argument doorgeven:
Je kunt in principe dezelfde structuur gebruiken wanneer je met JSX werkt:
Overigens, mijn JavaScript voorbeeld is bijna precies waar dat voorbeeld van JSX in transformeert. Speel wat rond met Babel REPL om een gevoel te krijgen voor hoe JSX werkt.
Niet zeker of dit voor uw situatie zal werken, maar vaak is map een goed antwoord.
Als dit jouw code was met de for-lus:
Je zou het zo kunnen schrijven met map:
ES6 syntaxis:
Ik weet dat dit een oude thread is, maar je zou React Templates kunnen bekijken, waarmee je jsx-stijl templates in react kunt gebruiken, met een paar directives (zoals rt-repeat).
Je voorbeeld, als je react-templates zou gebruiken, zou zijn: