From 91ffdbfca60386017c30a668ce0ff682b2ad4f0f Mon Sep 17 00:00:00 2001 From: Anod Chow <110156942+a92126@users.noreply.github.com> Date: Sun, 27 Apr 2025 16:47:35 +0800 Subject: [PATCH] fix(components): [tree] filter update scheduling error (#20267) * Update tree-store.ts fix: the bug #20259 Ensure the sequence for the traverse step. * fix(components): [tree] filter update scheduling error fix(components): [tree] fix bug #20259 Ensure the sequence for the traverse step. If call the traverse without await, the code below will run before the children had been processed, making the parent node invisible. --- packages/components/tree/__tests__/tree.test.ts | 2 +- packages/components/tree/src/model/tree-store.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/components/tree/__tests__/tree.test.ts b/packages/components/tree/__tests__/tree.test.ts index a97b68d338..9af7a96f81 100644 --- a/packages/components/tree/__tests__/tree.test.ts +++ b/packages/components/tree/__tests__/tree.test.ts @@ -350,7 +350,7 @@ describe('Tree.vue', () => { const treeWrapper = wrapper.findComponent(Tree) ;(treeWrapper.vm as InstanceType).filter('2-1') - await nextTick() + await sleep() expect(treeWrapper.findAll('.el-tree-node.is-hidden').length).toEqual(3) }) test('lazy load with filter expand loaded node', async () => { diff --git a/packages/components/tree/src/model/tree-store.ts b/packages/components/tree/src/model/tree-store.ts index 82371bb613..c3a98eaff0 100644 --- a/packages/components/tree/src/model/tree-store.ts +++ b/packages/components/tree/src/model/tree-store.ts @@ -79,7 +79,7 @@ export default class TreeStore { if (index % 80 === 0 && index > 0) { await nextTick() } - traverse(child) + await traverse(child) } if (!(node as Node).visible && childNodes.length) {