请问是否有antd/tree方法可以一键展开所有节点呢?

作者站长头像
站长
· 阅读数 5

在学习组件tree的时候:

请问是否有antd/tree方法可以一键展开所有节点呢?

请问是否有方法可以一键展开所有节点呢?


编辑1:

因为我设置了defaultExpandAll没有效果,所以想要知道是否有方法可以对<Tree>进行展开所有?

 return <Tree treeData={treeData} defaultExpandAll={true} />;
回复
1个回答
avatar
test
2024-06-25

调整一下写法就行了, defaultExpandAll 只会在初始化的时候生效,正确理解这句话很重要

  • 初始化数据即存在的场景,直接渲染即可

    const [treeData, setTreeData] = useState([
      { key: '1', title: 'parent 1', chidren: [...] },
      { key: '2', title: 'parent 1', chidren: [...] }
    ]);
    
    return <Tree treeData={treeData} defaultExpandAll={true} />;
  • 初始化没有数据,通过异步请求获取数据的情况,增加一个判断,有数据才渲染组件

    const [treeData, setTreeData] = useState([]);
    
    useEffect(() => {
      fetchTreeData().then((treeData) => setTreeData(treeData))
    }, [])
    
    return (
      treeData.length ?
        <Tree treeData={treeData} defaultExpandAll={true} /> :
        null
    );
回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容