Commit 8d218ec8d505296a83c31a553b59fb946d2e8d65
Committed by
GitHub
1 parent
72dbe574
Update useTree.ts (#2602)
修复获取子节点出错
Showing
1 changed file
with
5 additions
and
3 deletions
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; |