Commit 6d5c49f0a208de5b745c36d2320dd4c2cffe7d75
1 parent
0aeec5e9
fix(menu): currentActiveMenu fails after refresh #188
Showing
1 changed file
with
7 additions
and
4 deletions
src/components/Menu/src/BasicMenu.vue
... | ... | @@ -58,6 +58,7 @@ |
58 | 58 | emits: ['menuClick'], |
59 | 59 | setup(props, { emit }) { |
60 | 60 | const isClickGo = ref(false); |
61 | + const currentActiveMenu = ref(''); | |
61 | 62 | |
62 | 63 | const menuState = reactive<MenuState>({ |
63 | 64 | defaultSelectedKeys: [], |
... | ... | @@ -118,10 +119,11 @@ |
118 | 119 | listenerLastChangeTab((route) => { |
119 | 120 | if (route.name === REDIRECT_NAME) return; |
120 | 121 | handleMenuChange(route); |
121 | - const currentActiveMenu = route.meta?.currentActiveMenu; | |
122 | - if (currentActiveMenu) { | |
123 | - menuState.selectedKeys = [currentActiveMenu]; | |
124 | - setOpenKeys(currentActiveMenu); | |
122 | + currentActiveMenu.value = route.meta?.currentActiveMenu; | |
123 | + | |
124 | + if (unref(currentActiveMenu)) { | |
125 | + menuState.selectedKeys = [unref(currentActiveMenu)]; | |
126 | + setOpenKeys(unref(currentActiveMenu)); | |
125 | 127 | } |
126 | 128 | }); |
127 | 129 | |
... | ... | @@ -153,6 +155,7 @@ |
153 | 155 | } |
154 | 156 | const path = (route || unref(currentRoute)).path; |
155 | 157 | setOpenKeys(path); |
158 | + if (unref(currentActiveMenu)) return; | |
156 | 159 | if (props.isHorizontal && unref(getSplit)) { |
157 | 160 | const parentPath = await getCurrentParentPath(path); |
158 | 161 | menuState.selectedKeys = [parentPath]; | ... | ... |