Commit 8d218ec8d505296a83c31a553b59fb946d2e8d65

Authored by JokeHe
Committed by GitHub
1 parent 72dbe574

Update useTree.ts (#2602)

修复获取子节点出错
src/components/Tree/src/hooks/useTree.ts
@@ -181,14 +181,16 @@ export function useTree(treeDataRef: Ref<TreeDataItem[]>, getFieldNames: Compute @@ -181,14 +181,16 @@ export function useTree(treeDataRef: Ref<TreeDataItem[]>, getFieldNames: Compute
181 function getSelectedNode(key: KeyType, list?: TreeItem[], selectedNode?: TreeItem | null) { 181 function getSelectedNode(key: KeyType, list?: TreeItem[], selectedNode?: TreeItem | null) {
182 if (!key && key !== 0) return null; 182 if (!key && key !== 0) return null;
183 const treeData = list || unref(treeDataRef); 183 const treeData = list || unref(treeDataRef);
  184 + const { key: keyField, children: childrenField } = unref(getFieldNames);
  185 + if (!keyField) return;
184 treeData.forEach((item) => { 186 treeData.forEach((item) => {
185 if (selectedNode?.key || selectedNode?.key === 0) return selectedNode; 187 if (selectedNode?.key || selectedNode?.key === 0) return selectedNode;
186 - if (item.key === key) { 188 + if (item[keyField] === key) {
187 selectedNode = item; 189 selectedNode = item;
188 return; 190 return;
189 } 191 }
190 - if (item.children && item.children.length) {  
191 - selectedNode = getSelectedNode(key, item.children, selectedNode); 192 + if (item[childrenField!] && item[childrenField!].length) {
  193 + selectedNode = getSelectedNode(key, item[childrenField!], selectedNode);
192 } 194 }
193 }); 195 });
194 return selectedNode || null; 196 return selectedNode || null;