From 7bf1e0dda1fe8f70f6c8b17ba90b217df2a75bd4 Mon Sep 17 00:00:00 2001 From: tangjinzhou <415800467@qq.com> Date: Wed, 23 Mar 2022 22:07:06 +0800 Subject: [PATCH] fix: menu selectedKeys & openKeys support deep watch --- components/menu/src/Menu.tsx | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/components/menu/src/Menu.tsx b/components/menu/src/Menu.tsx index 68f5d87020..c2b5060d7d 100644 --- a/components/menu/src/Menu.tsx +++ b/components/menu/src/Menu.tsx @@ -139,9 +139,11 @@ export default defineComponent({ watch( () => props.selectedKeys, selectedKeys => { - mergedSelectedKeys.value = selectedKeys || mergedSelectedKeys.value; + if (selectedKeys) { + mergedSelectedKeys.value = selectedKeys.slice(); + } }, - { immediate: true }, + { immediate: true, deep: true }, ); const selectedSubMenuKeys = ref([]); @@ -212,10 +214,10 @@ export default defineComponent({ () => props.openKeys, (openKeys = mergedOpenKeys.value) => { if (!shallowEqual(mergedOpenKeys.value, openKeys)) { - mergedOpenKeys.value = openKeys; + mergedOpenKeys.value = openKeys.slice(); } }, - { immediate: true }, + { immediate: true, deep: true }, ); let timeout: any;