From 719f8ed5b515c925cd45084816d92d044e1dcbb0 Mon Sep 17 00:00:00 2001 From: Spaceman Date: Mon, 28 Jul 2025 06:08:38 +0800 Subject: [PATCH] fix(components): [tree]: fix dynamic binding `defaultCheckedKeys` trigger rerender (#21503) * fix(components): [tree]: Fix Dynamic Binding Expression Fix issue #21130 * fix(components): [tree]: Fix Dynamic Binding Expression * fix(components): [tree]: Fix Dynamic Binding Expression * fix(components): [tree]: Fix Dynamic Binding Expression --- packages/components/tree/src/tree.vue | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/components/tree/src/tree.vue b/packages/components/tree/src/tree.vue index 9346a55b59..d1003def48 100644 --- a/packages/components/tree/src/tree.vue +++ b/packages/components/tree/src/tree.vue @@ -57,6 +57,7 @@ import { useNodeExpandEventBroadcast } from './model/useNodeExpandEventBroadcast import { useDragNodeHandler } from './model/useDragNode' import { useKeydown } from './model/useKeydown' import { ROOT_TREE_INJECTION_KEY } from './tokens' +import { isEqual } from 'lodash-unified' import type Node from './model/node' import type { ComponentInternalInstance, PropType } from 'vue' @@ -224,7 +225,9 @@ export default defineComponent({ watch( () => props.defaultCheckedKeys, - (newVal) => { + (newVal, oldVal) => { + if (isEqual(newVal, oldVal)) return + store.value.setDefaultCheckedKey(newVal ?? []) } )