Daugiau
Kilpa "React JSX" viduje
Bandau padaryti kažką panašaus į tai, kas išdėstyta "React `JSX" (kur "ObjectRow" yra atskiras komponentas):
<tbody>
for (var i=0; i < numrows; i++) {
<ObjectRow/>
}
</tbody>
Aš suprantu ir suprantu, kodėl tai negalioja JSX
, nes JSX
atvaizduoja funkcijų iškvietimus. Tačiau, kadangi esu kilęs iš šablonų srities ir esu naujokas JSX
, nesu tikras, kaip galėčiau pasiekti tai, kas išdėstyta pirmiau (pridėti komponentą kelis kartus).
1126
3
Galvokite apie tai taip, tarsi tiesiog skambintumėte "JavaScript" funkcijoms. Negalite naudoti
for
ciklo, į kurį patektų funkcijos iškvietimo argumentai:Pažiūrėkite, kaip funkcijai
tbody
kaip argumentas perduodamasfor
ciklas, ir tai, žinoma, yra sintaksės klaida.Tačiau galite sukurti masyvą ir perduoti jį kaip argumentą:
Iš esmės tokią pačią struktūrą galite naudoti ir dirbdami su JSX:
Beje, mano "JavaScript" pavyzdys beveik tiksliai atitinka tai, į ką transformuojasi šis JSX pavyzdys. Žaiskite su Babel REPL, kad pajustumėte, kaip veikia JSX.
Nesu tikras, ar tai tiks jūsų atveju, bet dažnai žemėlapis yra geras atsakymas.
Jei tai būtų jūsų kodas su for ciklu:
Jūs galėtumėte jį parašyti taip: žemėlapis:
ES6 sintaksė:
Žinau, kad tai sena gija, bet galbūt norėsite patikrinti React Templates, kuri leidžia naudoti jsx stiliaus šablonus React, su keliomis direktyvomis (pvz., rt-repeat).
Jūsų pavyzdys, jei naudotumėte react-templates, būtų toks: