javascript - Material UI:显示不同子项的 TreeVIew Item
问题描述
我有一个材质 UI TreeView。我正在使用一个数组来使用 JSON 数组动态显示每个节点上的项目。
但是我使用的 JSON 在父节点中具有不同的键值。而孩子有不同的,不同的关键价值。
孩子在整个 JSON 中很常见。像这样的东西:
{
"organizationalUnitsList":[
{
"organizationalUnitDistinguishName":"OU=Domain Controllers,DC=gentest,DC=com",
"organizationalUnitId":"",
"organizationalUnitName":"OU_Domain Controllers",
"domainGroupList":[
{
"groupId":0,
"groupName":"Genesis II",
"groupImportedAs":"Normal",
"groupDistinguishName":""
}
]
},
{
"organizationalUnitDistinguishName":"OU=erte,DC=gentest,DC=com",
"organizationalUnitId":"",
"organizationalUnitName":"abc2",
"domainGroupList":[
{
"groupId":0,
"groupName":"operation 22",
"groupImportedAs":"Super",
"groupDistinguishName":""
},
{
"groupId":0,
"groupName":"operation 25",
"groupImportedAs":"Normal",
"groupDistinguishName":""
}
]
}
]
}
到目前为止,我所做的 React 代码是:
{
organizationalUnitsLists.map((row, index) => (
<TreeView
className={classes.root1}
defaultExpandIcon={<ArrowDropDownIcon />}
defaultCollapseIcon={<ArrowDropUpIcon />}
defaultEndIcon={<ArrowDropDownIcon />}
>
{renderTree(row, index)}
</TreeView>
));
}
然后在 renderTree 函数中我调用这个:
const renderTree = (row, index) => (
<TreeView
style={{ padding: '3px', marginLeft: 18 }}
onLabelClick={() => handleListItemOrgClick(row, index)}
key={row.organizationalUnitId}
nodeId={row.organizationalUnitId}
labelText={row.organizationalUnitName}
labelIcon={AccountTree}
>
{Array.isArray(treeViewChildren.domainGroupList) ? treeViewChildren.domainGroupList.map((node) => {
return (
<TreeView
style={{ padding: '3px', marginLeft: 18 }}
onLabelClick={() => handleTreeSubItems(node)}
key={node.groupId}
nodeId={node.groupId}
labelText={node.groupName}
labelIcon={AccountTree}
>
{/* {renderTree(node)} */}
</TreeView>
)
}
) : null}
</TreeView>
);
我的孩子正在展示。但它没有显示在当前节点单击上。每当我单击树视图时,孩子第一次都不会显示。但是当我进一步扩展它时,一个父母的孩子也显示在所有其他父母的孩子中。
我只想要一个父点击,它是它下面的 domainGroupList 。
谢谢你。
解决方案
推荐阅读
- python - ns 分辨率的最大 numpy.datetime64 是多少
- python - 从 url 更新机器人的头像
- griddb - 如何在使用 GridDB 时识别同一行中列的新旧值
- powershell - PowerShell:将 HTML 表提取为 CSV
- c# - 如何访问 List 的属性
子类? - javascript - Javascript 运行时优化数组修改
- ansible - jinja2 中嵌套变量的默认值
- c++ - 如果在命名空间中,Doxygen 会复制成员组
- asp.net-core - 是否需要为 .net core 3.1 框架(如 .net core 2.1)中的中间件安装显式微软软件包
- python-3.x - 成对相似性从 np.array 中排除带有观察值的文档配对