diff --git a/packages/signals/examples/dependancies.rs b/packages/signals/examples/dependancies.rs index 34159d34a..af869be2b 100644 --- a/packages/signals/examples/dependancies.rs +++ b/packages/signals/examples/dependancies.rs @@ -14,16 +14,28 @@ fn app() -> Element { } }); - let mut local_state = use_signal(|| 0); - - let computed = use_memo_with_dependencies((&local_state(),), move |(local_state,)| { - local_state * 2 + signal.cloned() - }); - - println!("Running app"); - rsx! { - button { onclick: move |_| local_state.set(local_state() + 1), "Add one" } - div { "{computed}" } + "Parent count: {signal}" + Child { + non_reactive_prop: signal() + } + } +} + +#[component] +fn Child(non_reactive_prop: i32) -> Element { + let mut signal = use_signal(|| 0); + + // You can manually specify the dependencies with `use_dependencies` for values that are not reactive like props + let computed = + use_memo(move || non_reactive_prop + signal()).use_dependencies((&non_reactive_prop,)); + + rsx! { + button { + onclick: move |_| signal += 1, + "Child count: {signal}" + } + + "Sum: {computed}" } }