Browse Source

Update useTree.ts (#2602)

修复获取子节点出错
JokeHe 2 years ago
parent
commit
8d218ec8d5
1 changed files with 5 additions and 3 deletions
  1. 5 3
      src/components/Tree/src/hooks/useTree.ts

+ 5 - 3
src/components/Tree/src/hooks/useTree.ts

@@ -181,14 +181,16 @@ export function useTree(treeDataRef: Ref<TreeDataItem[]>, getFieldNames: Compute
   function getSelectedNode(key: KeyType, list?: TreeItem[], selectedNode?: TreeItem | null) {
     if (!key && key !== 0) return null;
     const treeData = list || unref(treeDataRef);
+    const { key: keyField, children: childrenField } = unref(getFieldNames);
+    if (!keyField) return;
     treeData.forEach((item) => {
       if (selectedNode?.key || selectedNode?.key === 0) return selectedNode;
-      if (item.key === key) {
+      if (item[keyField] === key) {
         selectedNode = item;
         return;
       }
-      if (item.children && item.children.length) {
-        selectedNode = getSelectedNode(key, item.children, selectedNode);
+      if (item[childrenField!] && item[childrenField!].length) {
+        selectedNode = getSelectedNode(key, item[childrenField!], selectedNode);
       }
     });
     return selectedNode || null;