Quellcode durchsuchen

Fix child fields with the web history (#2172)

Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
Evan Almloff vor 1 Jahr
Ursprung
Commit
9f280a8d84
1 geänderte Dateien mit 18 neuen und 7 gelöschten Zeilen
  1. 18 7
      packages/router-macro/src/lib.rs

+ 18 - 7
packages/router-macro/src/lib.rs

@@ -462,14 +462,25 @@ impl RouteEnum {
             }
         }
         for route in &self.routes {
-            for segment in &route.segments {
-                if segment.name().as_ref() == Some(field) {
-                    from_route = true
+            match &route.ty {
+                RouteType::Child(child) => {
+                    if let Some(child) = child.ident.as_ref() {
+                        if child == "child" {
+                            from_route = true
+                        }
+                    }
                 }
-            }
-            if let Some(query) = &route.query {
-                if query.contains_ident(field) {
-                    from_route = true
+                RouteType::Leaf { .. } => {
+                    for segment in &route.segments {
+                        if segment.name().as_ref() == Some(field) {
+                            from_route = true
+                        }
+                    }
+                    if let Some(query) = &route.query {
+                        if query.contains_ident(field) {
+                            from_route = true
+                        }
+                    }
                 }
             }
         }