dioxus/packages/signals/examples/context.rs

26 lines
579 B
Rust
Raw Normal View History

2023-08-08 01:20:03 +00:00
#![allow(non_snake_case)]
use dioxus::prelude::*;
2023-08-08 18:12:08 +00:00
use dioxus_signals::Signal;
2023-08-08 01:20:03 +00:00
fn main() {
dioxus_desktop::launch(app);
}
fn app(cx: Scope) -> Element {
// Because signal is never read in this component, this component will not rerun when the signal changes
use_context_provider(cx, || Signal::new(0));
render! {
Child {}
}
}
fn Child(cx: Scope) -> Element {
let signal: Signal<i32> = *use_context(cx).unwrap();
// This component does read from the signal, so when the signal changes it will rerun
render! {
"{signal}"
}
}