1
Я хочу выполнить нижеследующую рекурсивную функцию, проблема ul
Поскольку, когда функция вызывается, я нажимаю тег ul
и в конце forEach
Я закрываю его. Если я изменил outputArray.push(<ul>)
с закрытием </ul>
, тогда он отлично работает, но это не послужит моей цели.Элемент Push без закрывающей метки JSX
Все вокруг?
Примечание: Это рекурсивная функция.
function flatten(data, outputArray) {
outputArray.push(<ul>)
data.forEach(function (asset){
if(asset.children.length) {
outputArray.push(<li><button onClick={_ => this.appendAssets(asset.name)}>{asset.name}</button></li>);
flatten(asset.children, outputArray);
}
else{
outputArray.push(<li><button onClick={_ => this.appendAssets(asset.name)}>{asset.name}</button></li>);
}
});
outputArray.push(</ul>)
}
Какой смысл положить их в массив? Чего вы пытаетесь достичь? –
Просто собираюсь отдавать в дом. Просто нужно, чтобы ul и li сохранили структуру. –
Почему бы вам просто не использовать чистый JSX для рендеринга ul и внутри него по массиву в элементы li? –