diff --git a/examples/signals.rs b/examples/signals.rs index a595fca7a..d661acbd5 100644 --- a/examples/signals.rs +++ b/examples/signals.rs @@ -14,7 +14,7 @@ fn app() -> Element { // Signals are backed by a runtime that is designed to deeply integrate with Dioxus apps use_future(|| async move { loop { - if running.cloned() { + if running() { count += 1; } tokio::time::sleep(Duration::from_millis(400)).await; diff --git a/packages/signals/src/signal.rs b/packages/signals/src/signal.rs index 18444c2b4..9e9c0077e 100644 --- a/packages/signals/src/signal.rs +++ b/packages/signals/src/signal.rs @@ -348,7 +348,10 @@ impl PartialEq for Signal { } } -impl Deref for Signal { +/// Allow calling a signal with signal() syntax +/// +/// Currently only limited to copy types, though could probably specialize for string/arc/rc +impl Deref for Signal { type Target = dyn Fn() -> T; fn deref(&self) -> &Self::Target { @@ -486,7 +489,7 @@ impl PartialEq for ReadOnlySignal { } } -impl Deref for ReadOnlySignal { +impl Deref for ReadOnlySignal { type Target = dyn Fn() -> T; fn deref(&self) -> &Self::Target {