simple_todo.rs 719 B

1234567891011121314151617181920212223242526272829303132
  1. use dioxus::prelude::*;
  2. fn main() {
  3. dioxus_desktop::launch(app);
  4. }
  5. fn app(cx: Scope) -> Element {
  6. let mut idx = use_state(cx, || 0);
  7. let onhover = |h| println!("go!");
  8. cx.render(rsx! {
  9. div {
  10. button { onclick: move |_| idx += 1, "+" }
  11. button { onclick: move |_| idx -= 1, "-" }
  12. ul {
  13. (0..**idx).map(|i| rsx! {
  14. Child { i: i, onhover: onhover }
  15. })
  16. }
  17. }
  18. })
  19. }
  20. #[inline_props]
  21. fn Child<'a>(cx: Scope<'a>, i: i32, onhover: EventHandler<'a, MouseEvent>) -> Element {
  22. cx.render(rsx! {
  23. li {
  24. onmouseover: move |e| onhover.call(e),
  25. "{i}"
  26. }
  27. })
  28. }