我正在使用 React 从 JSON 制作 TreeView 。到目前为止,我已经使用这个示例数据制作了一个可折叠的树:
var data = {
title: "Node 1",
childNodes: [
{title: "Childnode 1.1"},
{title: "Childnode 1.2",
childNodes: [
{title: "Childnode 1.2.1",
childNodes: [
{title: "Childnode 1.2.1.1"}
]}, {title: "Childnode 1.2.2"}
]}
]
};
但这是一个对象。我想获取 JSON 对象数组作为输入并从中生成 TreeView ,但我无法理解在哪里更改代码。
这是我的渲染函数:
render() {
var childNodes;
if (this.props.node.childNodes != null) {
childNodes = this.props.node.childNodes.map(function (node, index) {
return <li key={index}><Treeview node={node}/></li>
});
}
return (
<form>
<div>
<input type="checkbox"/>
<label for>{this.props.node.title}</label>
</div>
<ul>
{childNodes}
</ul>
</form>
);
}
如何更改代码以处理整个数组而不是一个对象?
最佳答案
递归很有趣!
const data = [{
title: "Node 1",
childNodes: [
{ title: "Childnode 1.1" },
{
title: "Childnode 1.2",
childNodes: [
{
title: "Childnode 1.2.1",
childNodes: [
{ title: "Childnode 1.2.1.1" }
]
}, { title: "Childnode 1.2.2" }
]
}
]
}];
const App = () => (
<form>
<Tree data={data} />
</form>
);
const Tree = ({data}) => (
<ul>
{data && data.map(item => (
<li>
{item.title}
{item.childNodes && <Tree data={item.childNodes} />}
</li>
))}
</ul>
);
关于javascript - 从 JSON 数组 react TreeView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47185330/