diff --git a/packages/router-macro/src/layout.rs b/packages/router-macro/src/layout.rs index 18d273c9a..732f48201 100644 --- a/packages/router-macro/src/layout.rs +++ b/packages/router-macro/src/layout.rs @@ -18,6 +18,7 @@ impl Layout { pub fn routable_match(&self, nests: &[Nest]) -> TokenStream { let props_name = &self.props_name; let comp_name = &self.comp; + let name_str = self.comp.segments.last().unwrap().ident.to_string(); let dynamic_segments = self .active_nests .iter() @@ -25,11 +26,10 @@ impl Layout { quote! { let comp = #props_name { #(#dynamic_segments,)* }; - let cx = cx.bump().alloc(Scoped { - props: cx.bump().alloc(comp), - scope: cx, - }); - #comp_name(cx) + let dynamic = cx.component(#comp_name, comp, #name_str); + render! { + dynamic + } } } } diff --git a/packages/router-macro/src/route.rs b/packages/router-macro/src/route.rs index 5c99c6ddd..dac505a8e 100644 --- a/packages/router-macro/src/route.rs +++ b/packages/router-macro/src/route.rs @@ -145,6 +145,7 @@ impl Route { index: usize, ) -> Option { let name = &self.route_name; + let name_str = name.to_string(); let dynamic_segments = self.dynamic_segments(); match index.cmp(&self.layouts.len()) { @@ -168,11 +169,10 @@ impl Route { #[allow(unused)] Self::#name { #(#dynamic_segments,)* } => { let comp = #props_name { #(#dynamic_segments_from_route,)* }; - let cx = cx.bump().alloc(Scoped { - props: cx.bump().alloc(comp), - scope: cx, - }); - #comp_name(cx) + let dynamic = cx.component(#comp_name, comp, #name_str); + render! { + dynamic + } } }) }