소스 검색

Update useTree.ts (#2602)

修复获取子节点出错
JokeHe 2 년 전
부모
커밋
8d218ec8d5
1개의 변경된 파일5개의 추가작업 그리고 3개의 파일을 삭제
  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;