diff --git a/src/components/Menu/src/BasicMenu.vue b/src/components/Menu/src/BasicMenu.vue index 5729c15eafc..2def9340605 100644 --- a/src/components/Menu/src/BasicMenu.vue +++ b/src/components/Menu/src/BasicMenu.vue @@ -58,6 +58,7 @@ emits: ['menuClick'], setup(props, { emit }) { const isClickGo = ref(false); + const currentActiveMenu = ref(''); const menuState = reactive({ defaultSelectedKeys: [], @@ -118,10 +119,11 @@ listenerLastChangeTab((route) => { if (route.name === REDIRECT_NAME) return; handleMenuChange(route); - const currentActiveMenu = route.meta?.currentActiveMenu; - if (currentActiveMenu) { - menuState.selectedKeys = [currentActiveMenu]; - setOpenKeys(currentActiveMenu); + currentActiveMenu.value = route.meta?.currentActiveMenu; + + if (unref(currentActiveMenu)) { + menuState.selectedKeys = [unref(currentActiveMenu)]; + setOpenKeys(unref(currentActiveMenu)); } }); @@ -153,6 +155,7 @@ } const path = (route || unref(currentRoute)).path; setOpenKeys(path); + if (unref(currentActiveMenu)) return; if (props.isHorizontal && unref(getSplit)) { const parentPath = await getCurrentParentPath(path); menuState.selectedKeys = [parentPath];