--- title: Tree sidebar_label: Tree --- import { StoryWithControls } from '../../../src/components/StorybookWrapper'; # 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 ## Try It Edit the code below to experiment with the component: ```tsx live 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 ; } ``` ## Checkable Tree ```tsx live 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 ( ); } ``` ## With Lines and Icons ```tsx live 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 ; } ``` ## Props | Prop | Type | Default | Description | |------|------|---------|-------------| | `checkable` | `boolean` | `false` | Add a Checkbox before the treeNodes | | `defaultExpandAll` | `boolean` | `false` | Whether to expand all treeNodes by default | | `disabled` | `boolean` | `false` | Whether disabled the tree | | `draggable` | `boolean` | `false` | Specifies whether this Tree or the node is draggable | | `multiple` | `boolean` | `false` | Allows selecting multiple treeNodes | | `selectable` | `boolean` | `true` | Whether can be selected | | `showIcon` | `boolean` | `false` | Controls whether to display the icon node | | `showLine` | `boolean` | `false` | Shows a connecting line | | `treeData` | `any` | `[{"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"}]}]}]` | - | | `defaultExpandedKeys` | `any` | `["0-0","0-0-0"]` | - | ## Import ```tsx import { Tree } from '@superset/components'; ``` --- :::tip[Improve this page] This documentation is auto-generated from the component's Storybook story. Help improve it by [editing the story file](https://github.com/apache/superset/edit/master/superset-frontend/packages/superset-ui-core/src/components/Tree/Tree.stories.tsx). :::