Skip to main content
Version: Next

Tree

The Tree component is used to display hierarchical data in a tree structure. It allows for features such as selection, expansion, and drag-and-drop functionality.

Live Example​

Loading component...

Try It​

Edit the code below to experiment with the component:

Live Editor
function Demo() {
  const treeData = [
    {
      title: 'Databases',
      key: 'databases',
      children: [
        { title: 'PostgreSQL', key: 'postgres' },
        { title: 'MySQL', key: 'mysql' },
        { title: 'SQLite', key: 'sqlite' },
      ],
    },
    {
      title: 'Charts',
      key: 'charts',
      children: [
        { title: 'Bar Chart', key: 'bar' },
        { title: 'Line Chart', key: 'line' },
        { title: 'Pie Chart', key: 'pie' },
      ],
    },
  ];
  return <Tree treeData={treeData} defaultExpandAll />;
}
Result
Loading...

Checkable Tree​

Live Editor
function CheckableTree() {
  const [checkedKeys, setCheckedKeys] = React.useState(['postgres']);
  const treeData = [
    {
      title: 'Databases',
      key: 'databases',
      children: [
        { title: 'PostgreSQL', key: 'postgres' },
        { title: 'MySQL', key: 'mysql' },
      ],
    },
    {
      title: 'Charts',
      key: 'charts',
      children: [
        { title: 'Bar Chart', key: 'bar' },
        { title: 'Line Chart', key: 'line' },
      ],
    },
  ];
  return (
    <Tree
      treeData={treeData}
      checkable
      defaultExpandAll
      checkedKeys={checkedKeys}
      onCheck={setCheckedKeys}
    />
  );
}
Result
Loading...

With Lines and Icons​

Live Editor
function LinesAndIcons() {
  const treeData = [
    {
      title: 'Dashboards',
      key: 'dashboards',
      children: [
        { title: 'Sales Dashboard', key: 'sales' },
        { title: 'Marketing Dashboard', key: 'marketing' },
      ],
    },
    {
      title: 'Reports',
      key: 'reports',
      children: [
        { title: 'Weekly Report', key: 'weekly' },
        { title: 'Monthly Report', key: 'monthly' },
      ],
    },
  ];
  return <Tree treeData={treeData} showLine showIcon defaultExpandAll />;
}
Result
Loading...

Props​

PropTypeDefaultDescription
checkablebooleanfalseAdd a Checkbox before the treeNodes
defaultExpandAllbooleanfalseWhether to expand all treeNodes by default
disabledbooleanfalseWhether disabled the tree
draggablebooleanfalseSpecifies whether this Tree or the node is draggable
multiplebooleanfalseAllows selecting multiple treeNodes
selectablebooleantrueWhether can be selected
showIconbooleanfalseControls whether to display the icon node
showLinebooleanfalseShows a connecting line
treeDataany[{"title":"parent 1","key":"0-0","children":[{"title":"parent 1-0","key":"0-0-0","children":[{"title":"leaf","key":"0-0-0-0"},{"title":"leaf","key":"0-0-0-1"},{"title":"leaf","key":"0-0-0-2"}]},{"title":"parent 1-1","key":"0-0-1","children":[{"title":"leaf","key":"0-0-1-0"}]},{"title":"parent 1-2","key":"0-0-2","children":[{"title":"leaf","key":"0-0-2-0"},{"title":"leaf","key":"0-0-2-1"}]}]}]-
defaultExpandedKeysany["0-0","0-0-0"]-

Import​

import { Tree } from '@superset-ui/core/components';

Improve this page

This documentation is auto-generated from the component's Storybook story. Help improve it by editing the story file.