@@ -11,30 +11,31 @@ const initialData = [
11
11
{ id : '4' , name : 'N4' , parent : 3 } ,
12
12
] ;
13
13
14
- const getNodeKey = ( { node } ) => node . id ;
15
-
16
14
export default class App extends Component {
17
15
constructor ( props ) {
18
16
super ( props ) ;
19
17
20
18
this . state = {
21
19
treeData : getTreeFromFlatData ( {
22
20
flatData : initialData . map ( node => ( { ...node , title : node . name } ) ) ,
23
- getKey : node => node . id ,
24
- getParentKey : node => node . parent ,
25
- rootKey : null ,
21
+ getKey : node => node . id , // resolve a node's key
22
+ getParentKey : node => node . parent , // resolve a node's parent's key
23
+ rootKey : null , // The value of the parent key when there is no parent (i.e., at root level)
26
24
} ) ,
27
25
} ;
28
26
}
29
27
30
28
render ( ) {
31
29
const flatData = getFlatDataFromTree ( {
32
30
treeData : this . state . treeData ,
33
- getNodeKey,
34
- ignoreCollapsed : false ,
31
+ getNodeKey : ( { node } ) => node . id , // This ensures your "id" properties are exported in the path
32
+ ignoreCollapsed : false , // Makes sure you traverse every node in the tree, not just the visible ones
35
33
} ) . map ( ( { node, path } ) => ( {
36
34
id : node . id ,
37
35
name : node . name ,
36
+
37
+ // The last entry in the path is this node's key
38
+ // The second to last entry (accessed here) is the parent node's key
38
39
parent : path . length > 1 ? path [ path . length - 2 ] : null ,
39
40
} ) ) ;
40
41
@@ -45,7 +46,6 @@ export default class App extends Component {
45
46
< SortableTree
46
47
treeData = { this . state . treeData }
47
48
onChange = { treeData => this . setState ( { treeData } ) }
48
- getNodeKey = { getNodeKey }
49
49
/>
50
50
</ div >
51
51
< hr />
0 commit comments