diff --git a/src/collections/Router.js b/src/collections/Router.js
index <HASH>..<HASH> 100644
--- a/src/collections/Router.js
+++ b/src/collections/Router.js
@@ -65,6 +65,11 @@ const methods = {
         ret.id = `${ret.type}-root`;
       }
 
+      // 有些特殊情况 id 会重复（同样的父子路由，出现在多处，可能父亲的父亲不一样）
+      if (routeByIds[ret.id]) {
+        ret.id = `${ret.id}_${Math.random()}`;
+      }
+
       if (node.children) {
         ret.children = node.children
           .filter(node => node.type === 'JSXElement')
fix: avoid route id repeat