我需要帮助以递归方式呈现各个级别的组件。 顶层有节点,然后遵循相同的结构直到最后。 如果获得特权,则会以不同的方式呈现它,但是所有类别都需要显示在上方。
请在这里找到一个小提琴: https://jsfiddle.net/vedvrat13/dq0u2pm7/
预期输出:
--Category 1
----SubCategory 1
------Privilege 11
--Category 2
----SubCategory 2
------Privilege 21
------Privilege 22
请帮助我。 我尝试了多种方法,但是我也对如何渲染和调用函数感到困惑。
答案 0 :(得分:1)
已修复:
renderRecursive(level, nodes){
return nodes.map(node => {
return (
<div>
<div>{node.label}</div>
{(node.type === 'CATEGORY' && node.nodes) && this.renderRecursive(level++, node.nodes)}
</div>)
});
};
答案 1 :(得分:1)
这可以帮助您形成期望的结构。您需要形成树结构来实现它,并在https://stackblitz.com/edit/react-65krxc?file=TreeComponent.js
中找到工作模块node --max_old_space_size=102400 node_modules/@angular/cli/bin/ng build --prod
在TreeComponent内部
renderRecursiveNodes(nodes){
return nodes.map(node => {
return (
<div>
<TreeComponent node={node} />
</div>)
});
};
render() {
return (
<div>
{this.renderRecursiveNodes(this.state.items)}
</div>
)
}
如果您需要更多信息,请告诉我。谢谢
答案 2 :(得分:0)
好的,这是一个有趣的小例子,但是您的问题是您实际上并未以正确的方式看待它,结果是没有正确构建标记结构:P
通过小提琴的外观,最终结果实际上是这样的:
<Route render={({ location }) => {
return location.pathname.indexOf('/login') === -1 ? TopMenuComponent : null
}} />
打扰的男孩...无论如何,所以一旦您看到它,您就会看到:
所以现在我们建立:
...还是不,因为您回答了XD