diff --git a/CHANGELOG.md b/CHANGELOG.md index 9fa90da092342429b1db74092c11cebcbb168fc6..3e9f8c90d9d7a6ce80dac63a33066c19a8dcec3c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,10 @@ - 更新引用界面行为组图标 +### Fixed + +- 修复路由跳转菜单首页时,视图栈缓存数据异常导致后续视图回退异常 + ## [0.7.41-alpha.15] - 2025-09-17 ### Added diff --git a/src/util/store/view-stack/view-stack.ts b/src/util/store/view-stack/view-stack.ts index 7e9a3c958011cb20725759272fd4093a23634682..84d557d4ce1ef2b00ea641b7bd54a9ab8bf8b75b 100644 --- a/src/util/store/view-stack/view-stack.ts +++ b/src/util/store/view-stack/view-stack.ts @@ -68,6 +68,15 @@ export const useViewStack = defineStore('viewStack', () => { currentKey: '', }); + /** + * @description 清空视图堆栈 + */ + const clear = () => { + viewStack.cacheKeys = []; + viewStack.currentKey = ''; + viewInfoMap.clear(); + }; + /** * 更新视图信息 * @author lxm @@ -125,8 +134,14 @@ export const useViewStack = defineStore('viewStack', () => { // 一级路由没变,更新视图信息 updateViewInfo(key, to); } else if (viewStack.cacheKeys.includes(key)) { - // 跳转到已经缓存的页面,只有返回后退这一种情况,弹出记录 - pop(); + // 如果跳转的是首页则清空缓存,并重新添加视图缓存 + if (key === '/-/index/-') { + clear(); + push(key, to); + } else { + // 跳转到已经缓存的页面,只有返回后退这一种情况,弹出记录 + pop(); + } } else { // 缓存里没有的就是push新的页面 push(key, to);