Skip to main content
Version: Next

TreeSelect

TreeSelect is a select component that allows users to select from a tree structure.

Live Example​

Loading component...

Try It​

Edit the code below to experiment with the component:

Live Editor
function Demo() {
  const [value, setValue] = React.useState(undefined);
  const treeData = [
    {
      title: 'Databases',
      value: 'databases',
      children: [
        { title: 'PostgreSQL', value: 'postgres' },
        { title: 'MySQL', value: 'mysql' },
      ],
    },
    {
      title: 'Charts',
      value: 'charts',
      children: [
        { title: 'Bar Chart', value: 'bar' },
        { title: 'Line Chart', value: 'line' },
      ],
    },
  ];
  return (
    <TreeSelect
      style={{ width: 300 }}
      value={value}
      onChange={setValue}
      treeData={treeData}
      placeholder="Select an item"
      allowClear
      treeDefaultExpandAll
    />
  );
}
Result
Loading...

Multiple Selection with Checkboxes​

Live Editor
function MultiSelectTree() {
  const [value, setValue] = React.useState([]);
  const treeData = [
    {
      title: 'Databases',
      value: 'databases',
      children: [
        { title: 'PostgreSQL', value: 'postgres' },
        { title: 'MySQL', value: 'mysql' },
        { title: 'SQLite', value: 'sqlite' },
      ],
    },
    {
      title: 'File Formats',
      value: 'formats',
      children: [
        { title: 'CSV', value: 'csv' },
        { title: 'Excel', value: 'excel' },
      ],
    },
  ];
  return (
    <TreeSelect
      style={{ width: 300 }}
      value={value}
      onChange={setValue}
      treeData={treeData}
      treeCheckable
      placeholder="Select data sources"
      treeDefaultExpandAll
      allowClear
    />
  );
}
Result
Loading...

With Tree Lines​

Live Editor
function TreeLinesDemo() {
  const treeData = [
    {
      title: 'Dashboards',
      value: 'dashboards',
      children: [
        { title: 'Sales Dashboard', value: 'sales' },
        { title: 'Marketing Dashboard', value: 'marketing' },
      ],
    },
    {
      title: 'Charts',
      value: 'charts',
      children: [
        { title: 'Revenue Chart', value: 'revenue' },
        { title: 'User Growth', value: 'growth' },
      ],
    },
  ];
  return (
    <TreeSelect
      style={{ width: 300 }}
      treeData={treeData}
      treeLine
      treeDefaultExpandAll
      placeholder="Browse items"
    />
  );
}
Result
Loading...

Props​

PropTypeDefaultDescription
allowClearbooleantrueWhether to allow clearing the selected value.
disabledbooleanfalseWhether the component is disabled.
multiplebooleanfalseWhether to allow multiple selections.
placeholderstring"Please select"Placeholder text for the input field.
showSearchbooleantrueWhether to show the search input.
sizestring"middle"Size of the component.
treeCheckablebooleanfalseWhether to show checkable tree nodes.
treeDefaultExpandAllbooleantrueWhether to expand all tree nodes by default.
treeLinebooleanfalseWhether to show tree lines.
variantstring"outlined"Variant of the component.
treeDataany[{"title":"Node1","value":"0-0","children":[{"title":"Child Node1","value":"0-0-0"},{"title":"Child Node2","value":"0-0-1"}]},{"title":"Node2","value":"0-1","children":[{"title":"Child Node3","value":"0-1-0"}]}]-

Import​

import { TreeSelect } 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.