【发布时间】:2017-02-16 22:53:19
【问题描述】:
我想执行下面的递归函数,问题是ul 因为当函数被调用时,我推了一个ul 标签,在forEach 的末尾我关闭了它。如果我用关闭的</ul> 更改outputArray.push(<ul>),那么它可以正常工作,但这不符合我的目的。
有什么办法吗?
注意:这是一个递归函数。
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>)
}
【问题讨论】:
-
将它们放入数组有什么意义?你想达到什么目的?
-
只是要渲染成dom。只需要 ul 和 li 来保留结构。
-
为什么不直接使用纯 JSX 来渲染 ul 并在其中映射数组到 li 元素?
-
会有多个
ul,具体取决于我收到的数据。有点动态。
标签: javascript reactjs jsx