mirror of
https://github.com/DioxusLabs/dioxus
synced 2025-02-17 06:08:26 +00:00
fix switching between routes with different hooks
This commit is contained in:
parent
33f0e30369
commit
fe626c67bd
2 changed files with 10 additions and 10 deletions
|
@ -18,6 +18,7 @@ impl Layout {
|
||||||
pub fn routable_match(&self, nests: &[Nest]) -> TokenStream {
|
pub fn routable_match(&self, nests: &[Nest]) -> TokenStream {
|
||||||
let props_name = &self.props_name;
|
let props_name = &self.props_name;
|
||||||
let comp_name = &self.comp;
|
let comp_name = &self.comp;
|
||||||
|
let name_str = self.comp.segments.last().unwrap().ident.to_string();
|
||||||
let dynamic_segments = self
|
let dynamic_segments = self
|
||||||
.active_nests
|
.active_nests
|
||||||
.iter()
|
.iter()
|
||||||
|
@ -25,11 +26,10 @@ impl Layout {
|
||||||
|
|
||||||
quote! {
|
quote! {
|
||||||
let comp = #props_name { #(#dynamic_segments,)* };
|
let comp = #props_name { #(#dynamic_segments,)* };
|
||||||
let cx = cx.bump().alloc(Scoped {
|
let dynamic = cx.component(#comp_name, comp, #name_str);
|
||||||
props: cx.bump().alloc(comp),
|
render! {
|
||||||
scope: cx,
|
dynamic
|
||||||
});
|
}
|
||||||
#comp_name(cx)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -145,6 +145,7 @@ impl Route {
|
||||||
index: usize,
|
index: usize,
|
||||||
) -> Option<TokenStream2> {
|
) -> Option<TokenStream2> {
|
||||||
let name = &self.route_name;
|
let name = &self.route_name;
|
||||||
|
let name_str = name.to_string();
|
||||||
let dynamic_segments = self.dynamic_segments();
|
let dynamic_segments = self.dynamic_segments();
|
||||||
|
|
||||||
match index.cmp(&self.layouts.len()) {
|
match index.cmp(&self.layouts.len()) {
|
||||||
|
@ -168,11 +169,10 @@ impl Route {
|
||||||
#[allow(unused)]
|
#[allow(unused)]
|
||||||
Self::#name { #(#dynamic_segments,)* } => {
|
Self::#name { #(#dynamic_segments,)* } => {
|
||||||
let comp = #props_name { #(#dynamic_segments_from_route,)* };
|
let comp = #props_name { #(#dynamic_segments_from_route,)* };
|
||||||
let cx = cx.bump().alloc(Scoped {
|
let dynamic = cx.component(#comp_name, comp, #name_str);
|
||||||
props: cx.bump().alloc(comp),
|
render! {
|
||||||
scope: cx,
|
dynamic
|
||||||
});
|
}
|
||||||
#comp_name(cx)
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue