routing_update.rs 766 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #![allow(non_snake_case, unused)]
  2. use dioxus::prelude::*;
  3. use dioxus_router::prelude::*;
  4. // ANCHOR: router
  5. #[derive(Routable, Clone, PartialEq)]
  6. enum Route {
  7. #[route("/")]
  8. Index {},
  9. #[route("/home")]
  10. Home {},
  11. }
  12. #[inline_props]
  13. fn Home(cx: Scope) -> Element {
  14. render! {
  15. p { "Home" }
  16. }
  17. }
  18. #[inline_props]
  19. fn Index(cx: Scope) -> Element {
  20. render! {
  21. p { "Index" }
  22. }
  23. }
  24. fn app(cx: Scope) -> Element {
  25. render! {
  26. Router::<Route> {
  27. config: || RouterConfig::default().on_update(|state|{
  28. (state.current() == Route::Index {}).then_some(
  29. NavigationTarget::Internal(Route::Home {})
  30. )
  31. })
  32. }
  33. }
  34. }
  35. // ANCHOR_END: router
  36. fn main() {}