selector.rs 473 B

12345678910111213141516171819202122232425
  1. use dioxus::prelude::*;
  2. use dioxus_signals::*;
  3. fn main() {
  4. dioxus_desktop::launch(App);
  5. }
  6. #[component]
  7. fn App() -> Element {
  8. let signal = use_signal(|| 0);
  9. let doubled = use_selector(move || signal * 2);
  10. render! {
  11. button {
  12. onclick: move |_| *signal.write() += 1,
  13. "Increase"
  14. }
  15. Child { signal: doubled }
  16. }
  17. }
  18. #[component]
  19. fn Child(signal: ReadOnlySignal<usize>) -> Element {
  20. render! { "{signal}" }
  21. }