fix layouts in child routes
This commit is contained in:
1 parent
128f3e4425
commit
5f37dcc2ac
2 files changed
+12
-2
No files matched your search
@@ -119,6 +119,8 @@ pub fn GenericRouter<R: Routable + Clone>(cx: Scope<GenericRouterProps<R>>) -> E
|
|||||||
where
|
where
|
||||||
<R as FromStr>::Err: std::fmt::Display,
|
<R as FromStr>::Err: std::fmt::Display,
|
||||||
{
|
{
|
||||||
|
use crate::prelude::outlet::OutletContext;
|
||||||
|
|
||||||
use_context_provider(cx, || {
|
use_context_provider(cx, || {
|
||||||
GenericRouterContext::new(
|
GenericRouterContext::new(
|
||||||
(cx.props
|
(cx.props
|
||||||
@@ -129,6 +131,10 @@ where
|
|||||||
cx.schedule_update_any(),
|
cx.schedule_update_any(),
|
||||||
)
|
)
|
||||||
});
|
});
|
||||||
|
use_context_provider(cx, || OutletContext::<R> {
|
||||||
|
current_level: 0,
|
||||||
|
_marker: std::marker::PhantomData,
|
||||||
|
});
|
||||||
|
|
||||||
render! {
|
render! {
|
||||||
GenericOutlet::<R> {}
|
GenericOutlet::<R> {}
|
||||||
@@ -152,6 +158,10 @@ where
|
|||||||
cx.schedule_update_any(),
|
cx.schedule_update_any(),
|
||||||
)
|
)
|
||||||
});
|
});
|
||||||
|
use_context_provider(cx, || OutletContext::<R> {
|
||||||
|
current_level: 0,
|
||||||
|
_marker: std::marker::PhantomData,
|
||||||
|
});
|
||||||
|
|
||||||
render! {
|
render! {
|
||||||
GenericOutlet::<R> {}
|
GenericOutlet::<R> {}
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ use crate::{routable::Routable, utils::use_router_internal::use_router_internal}
|
|||||||
|
|
||||||
pub(crate) struct OutletContext<R> {
|
pub(crate) struct OutletContext<R> {
|
||||||
pub current_level: usize,
|
pub current_level: usize,
|
||||||
_marker: std::marker::PhantomData<R>,
|
pub _marker: std::marker::PhantomData<R>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<R> Clone for OutletContext<R> {
|
impl<R> Clone for OutletContext<R> {
|
||||||
@@ -19,7 +19,7 @@ impl<R> Clone for OutletContext<R> {
|
|||||||
pub(crate) fn use_outlet_context<R: 'static>(cx: &ScopeState) -> &OutletContext<R> {
|
pub(crate) fn use_outlet_context<R: 'static>(cx: &ScopeState) -> &OutletContext<R> {
|
||||||
let outlet_context = cx.use_hook(|| {
|
let outlet_context = cx.use_hook(|| {
|
||||||
cx.consume_context().unwrap_or(OutletContext::<R> {
|
cx.consume_context().unwrap_or(OutletContext::<R> {
|
||||||
current_level: 0,
|
current_level: 1,
|
||||||
_marker: std::marker::PhantomData,
|
_marker: std::marker::PhantomData,
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in new issue
Block a user