iterator.rs 626 B

12345678910111213141516171819202122232425262728
  1. use dioxus::prelude::*;
  2. use dioxus_signals::*;
  3. fn main() {
  4. dioxus_desktop::launch(App);
  5. }
  6. #[component]
  7. fn App(cx: Scope) -> Element {
  8. let signal = use_signal(cx, || vec![String::from("Hello"), String::from("World")]);
  9. render! {
  10. button {
  11. onclick: move |_| {
  12. signal.write().push(String::from("Hello"));
  13. },
  14. "Add one"
  15. }
  16. for i in 0..signal().len() {
  17. Child { signal: signal.map(move |v| v.get(i).unwrap()) }
  18. }
  19. }
  20. }
  21. #[component]
  22. fn Child(cx: Scope, signal: SignalMap<String>) -> Element {
  23. render! {"{signal:?}"}
  24. }