Я строю дерево узлов в React.js, используя {List, ListItem, MakeSelectable} из 'material-ui/List'. В конечном итоге я подключу данные JSON, поступающие из внутреннего вызова веб-службы. У меня нет проблем декларативно не создавая вложенного списка:material-ui dynamic nestedItems в списке из данных JSON
<List>
...
<ListItem
...
nestedItems={[
<ListItem
...
То, что я хочу сделать, это программно создать эту вложенную структуру из данных в формате JSON. Достаточно просто создать отдельные компоненты <ListItem>
и перетащить их в массив для рендеринга, но у меня возникли проблемы с вводом вложенных элементов в структуру узлов на лету.
Лучшее, что я смог сделать до сих пор, - это работать снизу вверх, находить нижний уровень узлов JSON, подталкивая их в массив, создавая родительский компонент, назначая мой ранее созданный массив как дочерние родителя и т. д. например
var Children = [
<ListItem key={1} primaryText='Child 1' />
<ListItem key={2} primaryText='Child 2' />
]
тогда ...
var Parents = [
<ListItem key={0} primaryText='Parent 1' nestedItems={Children} />
]
Это немного громоздким; есть ли более изящный способ сопоставить родителей с вложенными детьми в материал-ui <List>
?