yewstack/yew

HashRouter unsatisfied trait bounds

Alluofuyo opened this issue · 3 comments

Problem

use yew::prelude::*;
use yew_router::prelude::*;
mod login;
mod register;
mod home;
mod not_found;




use login::Login;
use register::Register;
use home::Home;
use not_found::NotFound;
use crate::components::{
    user_context_provider::UserContextProvider, footer::Footer,header::Header
};


#[derive(Routable, PartialEq, Eq, Clone, Debug)]
pub enum Route{

    #[at("/login")]
    Login,
    #[at("/register")]
    Register,
    #[at("/")]
    Home,
    #[not_found]
    #[at("/404")]
    NotFound,
}

pub enum Msg {
    ChangeRoute,
}

pub fn switch(route:Route)->Html{
    match route {
        Route::Login => html!{<Login />},
        Route::Register => html!{<Register />},
        Route::Home => html!{<Home />},
        Route::NotFound => html!{<NotFound />}
    }
}

#[function_component(Main)]
pub fn app() -> Html {
    html! {
        <HashRouter>
            <UserContextProvider>
                <Header/>
                <Switch<Route> render={switch}/>
                <Footer/>
            </UserContextProvider>
        </HashRouter>
    }
}

Like the code post above, it took an error with the "HashRouter".

Screenshots
If applicable, add screenshots to help explain your problem.
image
image

Environment:

  • Yew version: [v0.21]
  • Rust version: [1.73.0, stable]
  • IDE: [RustRover 2023.2 EAP]

Your dependency versions seem to be mismatched. Are you using yew-router 0.18?

Your dependency versions seem to be mismatched. Are you using yew-router 0.18?

Yes, exact it is. I have downgraded the version of yew-router to 0.17 and it works.

You should consider updating both yew and yew-router.

I'm closing this as the problem has been solved