HashRouter unsatisfied trait bounds
Alluofuyo opened this issue · 3 comments
Alluofuyo commented
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.
Environment:
- Yew version: [v0.21]
- Rust version: [1.73.0,
stable
] - IDE: [RustRover 2023.2 EAP]
hamza1311 commented
Your dependency versions seem to be mismatched. Are you using yew-router 0.18?
Alluofuyo commented
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.
hamza1311 commented
You should consider updating both yew and yew-router.
I'm closing this as the problem has been solved