diff --git a/packages/effects/access/src/accessible.ts b/packages/effects/access/src/accessible.ts index 65ce23b3a1d..c6804fa8ffa 100644 --- a/packages/effects/access/src/accessible.ts +++ b/packages/effects/access/src/accessible.ts @@ -44,6 +44,14 @@ async function generateAccessible( // 根据router name判断,如果路由已经存在,则不再添加 if (!names?.includes(route.name)) { root.children?.push(route); + } else { + // 找到已存在的路由索引并更新,不更新会造成切换用户时,一级目录未更新,homePath 在二级目录导致的404问题 + const index = root.children?.findIndex( + (item) => item.name === route.name, + ); + if (index !== undefined && index !== -1 && root.children) { + root.children[index] = route; + } } } else { router.addRoute(route);