有没有办法以编程方式扩展和折叠材质 ui 中的树项?我可以通过单击项目来做到这一点,但有时我想根据树视图中的操作折叠和展开树项目。是否可以?
如何以编程方式展开或折叠 Material Ui 中的树项?
IT技术
reactjs
material-ui
2021-05-20 20:35:51
2个回答
您可以使用 TreeViewexpanded
props实现这一点。
下面的代码在挂载时扩展了 ID 为“1”的 TreeItem。
import React, {useEffect, useState} from 'react';
import TreeView from '@material-ui/lab/TreeView';
import ExpandMoreIcon from '@material-ui/icons/ExpandMore';
import ChevronRightIcon from '@material-ui/icons/ChevronRight';
import TreeItem from '@material-ui/lab/TreeItem';
export default function FileSystemNavigator() {
const [expanded, setExpanded] = useState([]);
useEffect(() => {
setExpanded(["1"])
},[])
return (
<TreeView
defaultCollapseIcon={<ExpandMoreIcon />}
defaultExpandIcon={<ChevronRightIcon />}
expanded={expanded}
>
<TreeItem nodeId="1" label="Applications"
>
<TreeItem nodeId="2" label="Calendar" />
<TreeItem nodeId="3" label="Chrome" />
<TreeItem nodeId="4" label="Webstorm" />
</TreeItem>
<TreeItem nodeId="5" label="Documents"
>
<TreeItem nodeId="6" label="Material-UI">
<TreeItem nodeId="7" label="src">
<TreeItem nodeId="8" label="index.js" />
<TreeItem nodeId="9" label="tree-view.js" />
</TreeItem>
</TreeItem>
</TreeItem>
</TreeView>
);
}
这个答案是者Riham努尔问题在此的注释部分答案(将无法在评论由于较少的声誉回复)。
如果我只想在折叠其他树项时选择选定的父树项怎么办?比如当我选择节点 1,然后节点 6 崩溃?
只需添加所选节点的 nodeId 即可轻松获得所需的结果。您可以通过代码Code SandBox。
PS:我希望我正确理解了这个问题,对不起,我在答案部分添加了这个。请让我知道是否有更好的方式将答案传达给 Riham。