Loop in React JSX
Sto cercando di fare qualcosa come il seguente in React JSX
(dove ObjectRow è un componente separato):
<tbody>
for (var i=0; i < numrows; i++) {
<ObjectRow/>
}
</tbody>
Mi rendo conto e capisco perché questo non è valido JSX
, dal momento che JSX
mappa le chiamate di funzione. Tuttavia, venendo dalla terra dei template ed essendo nuovo a JSX
, non sono sicuro di come potrei ottenere quanto sopra (aggiungendo un componente più volte).
1126
3
Pensatelo come se steste chiamando delle funzioni JavaScript. Non puoi usare un ciclo
for
dove andrebbero gli argomenti di una chiamata di funzione:Vedete come alla funzione
tbody
viene passato un ciclofor
come argomento, e naturalmente questo è un errore di sintassi.Ma potete creare un array e poi passarlo come argomento:
Puoi usare fondamentalmente la stessa struttura quando lavori con JSX:
Per inciso, il mio esempio JavaScript è quasi esattamente quello in cui si trasforma quell'esempio di JSX. Giocate con Babel REPL per avere un'idea di come funziona JSX.
Non so se questo funzionerà per la tua situazione, ma spesso map è una buona risposta.
Se questo fosse il tuo codice con il ciclo for:
Potresti scriverlo così con map:
Sintassi ES6:
So che questo è un vecchio thread, ma potresti voler controllare React Templates, che ti permette di usare template in stile jsx in react, con alcune direttive (come rt-repeat).
Il tuo esempio, se hai usato react-templates, sarebbe: