pub trait RouterScopeExt {
    fn navigator(&self) -> Option<Navigator>;
    fn location(&self) -> Option<Location>;
    fn route<R>(&self) -> Option<R>
    where
        R: Routable + 'static
; fn add_location_listener(
        &self,
        cb: Callback<Location>
    ) -> Option<LocationHandle>; fn add_navigator_listener(
        &self,
        cb: Callback<Navigator>
    ) -> Option<NavigatorHandle>; }
Expand description

An extension to Scope that provides location information and navigator access.

You can access them on ctx.link()

Example

Below is an example of the implementation of the Link component.

impl<R: Routable + 'static> Component for Link<R> {
    type Message = Msg;
    type Properties = LinkProps<R>;

    fn create(_ctx: &Context<Self>) -> Self {
        Self { _data: PhantomData }
    }

    fn update(&mut self, ctx: &Context<Self>, msg: Self::Message) -> bool {
        match msg {
            Msg::OnClick => {
                ctx.link()
                    .navigator()
                    .expect_throw("failed to get navigator.")
                    .push(&ctx.props().to);
                false
            }
        }
    }

    fn view(&self, ctx: &Context<Self>) -> Html {
        html! {
            <a class={ctx.props().classes.clone()}
                href={ctx.props().to.to_path()}
                onclick={ctx.link().callback(|e: MouseEvent| {
                    e.prevent_default();
                    Msg::OnClick
                })}
            >
                { ctx.props().children.clone() }
            </a>
        }
    }
}

Required Methods§

Returns current Navigator.

Returns current Location.

Returns current route.

Adds a listener that gets notified when location changes.

Note

LocationHandle works like a normal ContextHandle and it unregisters the callback when the handle is dropped. You need to keep the handle for as long as you need the callback.

Adds a listener that gets notified when navigator changes.

Note

NavigatorHandle works like a normal ContextHandle and it unregisters the callback when the handle is dropped. You need to keep the handle for as long as you need the callback.

Implementations on Foreign Types§

Implementors§