Commit 6d5c49f0a208de5b745c36d2320dd4c2cffe7d75

Authored by vben
1 parent 0aeec5e9

fix(menu): currentActiveMenu fails after refresh #188

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];
... ...