mirror of
https://github.com/DioxusLabs/dioxus
synced 2024-11-23 12:43:08 +00:00
fix use_router_internal
This commit is contained in:
parent
5ca0c9cbf8
commit
adf67b4384
1 changed files with 10 additions and 13 deletions
|
@ -11,22 +11,19 @@ use crate::prelude::*;
|
|||
/// - [`None`], when the current component isn't a descendant of a [`Link`] component.
|
||||
/// - Otherwise [`Some`].
|
||||
pub(crate) fn use_router_internal() -> Option<RouterContext> {
|
||||
let router = use_hook(|| {
|
||||
let router = consume_context::<RouterContext>();
|
||||
let router = use_hook(consume_context::<RouterContext>);
|
||||
use_on_destroy({
|
||||
to_owned![router];
|
||||
move || {
|
||||
let id = current_scope_id().expect("use_router_internal called outside of a component");
|
||||
|
||||
router.unsubscribe(id);
|
||||
}
|
||||
});
|
||||
use_hook(move || {
|
||||
let id = current_scope_id().expect("use_router_internal called outside of a component");
|
||||
router.subscribe(id);
|
||||
|
||||
Some(router)
|
||||
});
|
||||
|
||||
use_on_destroy(|| {
|
||||
let router = consume_context::<RouterContext>();
|
||||
|
||||
let id = current_scope_id().expect("use_router_internal called outside of a component");
|
||||
|
||||
router.unsubscribe(id);
|
||||
});
|
||||
|
||||
router
|
||||
})
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue