Цикъл в React JSX
Опитвам се да направя нещо подобно на следното в React JSX
(където ObjectRow е отделен компонент):
<tbody>
for (var i=0; i < numrows; i++) {
<ObjectRow/>
}
</tbody>
Осъзнавам и разбирам защо това не е валидно за JSX
, тъй като JSX
се съпоставя с извиквания на функции. Въпреки това, идвайки от страната на шаблоните и бидейки нов в JSX
, не съм сигурен как бих постигнал горното (добавянето на компонент няколко пъти).
1126
3
Мислете за това така, сякаш просто извиквате функции на JavaScript. Не можете да използвате цикъла
for
, в който биха отишли аргументите за извикване на функция:Виждате как на функцията
tbody
се подава цикълfor
като аргумент и това, разбира се, е синтактична грешка.Но можете да създадете масив и да го подадете като аргумент:
Можете да използвате по принцип същата структура при работа с JSX:
Между другото, моят пример с JavaScript е почти точно това, в което се превръща този пример с JSX. Поиграйте си с Babel REPL, за да разберете как работи JSX.
Не съм сигурен дали това ще е подходящо за вашата ситуация, но често map е добър отговор.
Ако това беше вашият код с цикъла for:
Бихте могли да го напишете по следния начин с map:
ES6 синтаксис:
Знам, че това е стара тема, но може би ще искате да разгледате React Templates, което ви позволява да използвате jsx-стил шаблони в react, с няколко директиви (като rt-repeat).
Вашият пример, ако използвате react-templates, би бил: