react-expandable-treeview
v1.0.1
Published
A simple and fully customizable tree view React component
Downloads
1,836
Maintainers
Readme
react-expandable-treeview
A simple and fully customizable tree view React component
Check out the live demo!
Quick start
Install the package using
yarn add react-expandable-treeview
ornpm install react-expandable-treeview
Import the
TreeView
component
import TreeView from 'react-expandable-treeview';
- Define the data you want to pass to
TreeView
. It should be a recursive array of elements with an uniqueid
and achildren
optional prop for children elements. Each one of them will be rendered as a tree node. Here is the base object model:
{
id: 0,
children: [
//...all the children elements*/
],
// ...other user-defined object properties
}
And an example of the data
prop o be passed to TreeView
component.
const data = [
{
id: 0,
children: [
{
id: 1
},
{
id: 2
}
],
id: 3,
children: [
{
id: 4,
children: [
{
id: 5
}
]
}
]
}
]
- The
TreeView
component has two required props:data
andrenderNode
. TherenderNode
prop is a function that allows you to represent the nodes of the tree as fully customizable React components: you can define their structure. In the example we add a customlabel
attribute to ourdata
elements and we want it to be rendered.
const data = [
{
id: 0,
label: 'A Father'
children: [
{
id: 1,
label: 'A Son'
},
{
id: 2,
label: 'Another Son'
}
],
id: 3,
label: 'Another Father',
children: [
{
id: 4,
children: [
{
id: 5,
label: 'Yet Another Son',
}
]
}
]
}
]
Now we can render the component inside our application:
<TreeView
data={data}
renderNode={({ label }) => <div>{label}</div>}
/>
Props
Here are the props you can pass to TreeView
.
| Prop Name | Type | Is Required | Default Value | Description |
|-|-|-|-|-|
| data| array
| required
|- | The data to display. |
| renderNode| func
| required
| - | The node render function |
| lineColor| string
| optional | '#4B6DAA'
| The color of the tree lines |
| lineWidth| number
| optional | 0.5
| Thickness of the tree lines |
| lineStyle| string
| optional | 'solid'
| Style of the tree lines. Can be 'solid'
, 'dotted'
, etc. (all the possible values for 'border-style'
CSS attribute) |
| lineAlpha| number
| optional | 0.4 | The alpha value of the tree lines |
| expandButtonColor | string
| optional | '#4B6DAA'
| The color of the expand button |
| nodeSize| number
| optional | 20 | The size of the tree leaf icons |