Procházet zdrojové kódy

fix: route root.children duplicate problem (#5755)

Co-authored-by: anyup <anyupxing@163.com>
anyup před 5 měsíci
rodič
revize
dbc0b7e4a9
1 změnil soubory, kde provedl 7 přidání a 1 odebrání
  1. 7 1
      packages/effects/access/src/accessible.ts

+ 7 - 1
packages/effects/access/src/accessible.ts

@@ -30,6 +30,9 @@ async function generateAccessible(
 
   const root = router.getRoutes().find((item) => item.path === '/');
 
+  // 获取已有的路由名称列表
+  const names = root?.children?.map((item) => item.name) ?? [];
+
   // 动态添加到router实例内
   accessibleRoutes.forEach((route) => {
     if (root && !route.meta?.noBasicLayout) {
@@ -38,7 +41,10 @@ async function generateAccessible(
       if (route.children && route.children.length > 0) {
         delete route.component;
       }
-      root.children?.push(route);
+      // 根据router name判断,如果路由已经存在,则不再添加
+      if (!names?.includes(route.name)) {
+        root.children?.push(route);
+      }
     } else {
       router.addRoute(route);
     }