diff --git a/packages/components/table/__tests__/table.test.ts b/packages/components/table/__tests__/table.test.ts
index 7083ae67b2..5ec734e6b0 100644
--- a/packages/components/table/__tests__/table.test.ts
+++ b/packages/components/table/__tests__/table.test.ts
@@ -1722,6 +1722,92 @@ describe('Table.vue', () => {
expect(spy.mock.calls[0][1]).toBeTruthy()
})
+ it('tree-props & default-expand-all with dynamic data', async () => {
+ wrapper = mount({
+ components: {
+ ElTable,
+ ElTableColumn,
+ },
+ template: `
+
+
+
+
+
+
+ `,
+ data() {
+ return {
+ testData: [],
+ }
+ },
+ methods: {
+ setData() {
+ this.testData = [
+ {
+ id: 1,
+ name: 'Toy Story',
+ release: '1995-11-22',
+ director: 'John Lasseter',
+ runtime: 80,
+ children: [
+ {
+ id: 11,
+ name: 'Toy Story',
+ release: '1995-11-22',
+ director: 'John Lasseter',
+ runtime: 80,
+ },
+ {
+ id: 12,
+ name: 'Toy Story',
+ release: '1995-11-22',
+ director: 'John Lasseter',
+ runtime: 80,
+ },
+ ],
+ },
+ {
+ id: 2,
+ name: "A Bug's Life",
+ release: '1998-11-25',
+ director: 'John Lasseter',
+ runtime: 95,
+ children: [
+ {
+ id: 21,
+ name: "A Bug's Life",
+ release: '1998-11-25',
+ director: 'John Lasseter',
+ runtime: 95,
+ },
+ {
+ id: 22,
+ name: "A Bug's Life",
+ release: '1998-11-25',
+ director: 'John Lasseter',
+ runtime: 95,
+ },
+ ],
+ },
+ ]
+ },
+ },
+ })
+ await doubleWait()
+ let childRows = wrapper.findAll('.el-table__row--level-1')
+ expect(childRows.length).toEqual(0)
+ wrapper.vm.setData()
+ await doubleWait()
+
+ childRows = wrapper.findAll('.el-table__row--level-1')
+ childRows.forEach((item) => {
+ expect(item.attributes('style')).toBeUndefined()
+ })
+ })
+
it('tree-props & default-expand-all & shrink & edit-value', async () => {
wrapper = mount({
components: {
diff --git a/packages/components/table/src/store/tree.ts b/packages/components/table/src/store/tree.ts
index 03adcfbc90..92bd360230 100644
--- a/packages/components/table/src/store/tree.ts
+++ b/packages/components/table/src/store/tree.ts
@@ -148,6 +148,7 @@ function useTree(watcherData: WatcherPropsData) {
watch(
() => normalizedData.value,
() => {
+ isInitTree = true
updateTreeData()
}
)