ant-design/components/tree/index.en-US.md

66 lines
4.7 KiB
Markdown
Raw Normal View History

2016-07-21 09:52:39 +08:00
---
category: Components
type: Data Display
2016-07-21 10:15:00 +08:00
title: Tree
2016-07-21 09:52:39 +08:00
---
2016-09-10 13:43:30 +08:00
## When To Use
2016-07-21 09:52:39 +08:00
2016-09-01 18:12:12 +08:00
Directory, organization, biological classification, country, and etc. Almost things of the world are tree structure. The `Tree` component is a way of representing the hierarchical relationship of these thingsand you also can expand, collapse, select the treeNodes of it.
2016-07-21 09:52:39 +08:00
## API
### Tree props
| Property | Description | Type | Default |
|----------------|--------------------------------------------------|------------|---------|
|multiple | Whether allow to select multiple treeNodes | boolean | false |
|checkable | Whether support add Checkbox before treeNode | boolean | false |
|defaultExpandAll | Whether default to expand all treeNodes | boolean | false |
|defaultExpandedKeys | Specify keys of default expanded treeNodes | string[] | [] |
|expandedKeys |(controlled) Specifies keys of expanded treeNodes | string[] | [] |
|autoExpandParent | Whether to automatically expand a parent treeNode | boolean | true |
|defaultCheckedKeys | Specifies keys of default checked treeNodes | string[] | [] |
2017-02-17 00:59:11 +08:00
|checkedKeys |(controlled) Specifies keys of checked treeNodesPS When specifies a key of treeNode which is a parent treeNode, all children treeNodes of its will be checked; And vice versa, when specifies a key of treeNode which is a child treeNode, its parent treeNode will also be checked. When `checkable` and `checkStrictly` is true, it'a object has `checked` and `halfChecked` property, and no matter child treeNode or parent treeNode is checked, they won't impact on eachother. | string[] \| {checked: string[], halfChecked: string[]} | [] |
|checkStrictly| Check treeNode precisely, parent treeNode and children treeNodes are not associated | boolean | false |
|defaultSelectedKeys | Specifies keys of default selected treeNodes | string[] | [] |
|selectedKeys |(controlled) Specifies keys of selected treeNode | string[] | - |
2016-07-21 09:52:39 +08:00
|onExpand | Defines a function will be called when expand or collapse a treeNode | function(expandedKeys, {expanded: bool, node}) | - |
|onCheck | Defines a function will be called when the onCheck event occurs | function(checkedKeys, e:{checked: bool, checkedNodes, node, event}) | - |
|onSelect | The callback will be invoked when the user clicks a treeNode | function(selectedKeys, e:{selected: bool, selectedNodes, node, event}) | - |
|filterTreeNode | Defines a function to filter treeNodeshighlightwhen return true, corresponding treeNode will be highlight | function(node) | - |
|loadData | load data asynchronously | function(node)| - |
2017-02-17 00:59:11 +08:00
|onRightClick | The call back will be invoked when the user right clicks a treeNode | function({event, node}) | - |
|draggable | Specifies whether this Tree is draggableIE>8 | boolean | false |
2017-02-17 00:59:11 +08:00
|onDragStart | Defines a function will be called when the onDragStart event occurs | function({event, node}) | - |
|onDragEnter | Defines a function will be called when the onDragEnter event occurs | function({event, node, expandedKeys}) | - |
|onDragOver | Defines a function will be called when the onDragOver event occurs | function({event, node}) | - |
|onDragLeave | Defines a function will be called when the onDragLeave event occurs | function({event, node}) | - |
|onDragEnd | Defines a function will be called when the onDragEnd event occurs | function({event, node}) | - |
2016-07-21 09:52:39 +08:00
|onDrop | Defines a function will be called when the onDrop event occurs | function({event, node, dragNode, dragNodesKeys}) | - |
|showLine | Whether show connecting line | boolean | false |
|showIcon | Whether show the icon before TreeNode title, which has no default style, you must set custom style for it if set to true | boolean | false |
2016-07-21 09:52:39 +08:00
### TreeNode props
| Property | Description | Type | Default |
|-----------|------------------------------------------|---------|---------|
|disabled | whether disabled the treeNode | boolean | false |
|disableCheckbox | whether disable the checkbox of treeNode | boolean | false |
|title | title | string\|ReactNode | '---' |
|key | it's used with (default)ExpandedKeys / (default)CheckedKeys / (default)SelectedKeys. P.S.: it must be unique in all of treeNodes of the tree! | string | internal calculated position of treeNode |
|isLeaf | whether it's leaf node | boolean | false |
2016-07-25 12:08:43 +08:00
2017-01-06 10:46:25 +08:00
## Note
2016-07-25 12:08:43 +08:00
2016-09-01 18:12:12 +08:00
The number of treeNodes can be very large, but when enable `checkable`,
2017-01-06 10:46:25 +08:00
it will spend more computing time, so we cache some calculations (e.g. `this.treeNodesStates`),
2016-09-01 18:12:12 +08:00
to avoid double computing. But, this bring some restrictions,
2017-01-06 10:46:25 +08:00
**when you load treeNodes asynchronously, you should render tree like this**。
```jsx
{this.state.treeData.length
? <Tree>{this.state.treeData.map(data => <TreeNode />)}</Tree>
: 'loading tree'}
```