From 8d218ec8d505296a83c31a553b59fb946d2e8d65 Mon Sep 17 00:00:00 2001 From: JokeHe <717105762@qq.com> Date: Mon, 6 Mar 2023 11:24:24 +0800 Subject: [PATCH] Update useTree.ts (#2602) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修复获取子节点出错 --- src/components/Tree/src/hooks/useTree.ts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/components/Tree/src/hooks/useTree.ts b/src/components/Tree/src/hooks/useTree.ts index 17345a26..dd04ec17 100644 --- a/src/components/Tree/src/hooks/useTree.ts +++ b/src/components/Tree/src/hooks/useTree.ts @@ -181,14 +181,16 @@ export function useTree(treeDataRef: Ref, 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;