Fix memo dirty flag after unrelated writes (#2992)
* Fix memo dirty flag after unrelated writes * improve regression test * Update packages/signals/tests/memo.rs Co-authored-by: Matt Hunzinger <matt@hunzinger.me> * Update packages/signals/tests/memo.rs Co-authored-by: Matt Hunzinger <matt@hunzinger.me> * Update packages/signals/tests/memo.rs Co-authored-by: Matt Hunzinger <matt@hunzinger.me> --------- Co-authored-by: Matt Hunzinger <matt@hunzinger.me>
This commit is contained in:
1 parent
5925f3c8ee
commit
d1c84d9a25
4 files changed
+163
-130
No files matched your search
@@ -1,6 +1,6 @@
|
||||
use crate::use_callback;
|
||||
use dioxus_core::prelude::*;
|
||||
use dioxus_signals::{Memo, Signal};
|
||||
use dioxus_signals::Memo;
|
||||
|
||||
#[doc = include_str!("../docs/derived_state.md")]
|
||||
#[doc = include_str!("../docs/rules_of_hooks.md")]
|
||||
@@ -8,6 +8,7 @@ use dioxus_signals::{Memo, Signal};
|
||||
#[track_caller]
|
||||
pub fn use_memo<R: PartialEq>(mut f: impl FnMut() -> R + 'static) -> Memo<R> {
|
||||
let callback = use_callback(move |_| f());
|
||||
let caller = std::panic::Location::caller();
|
||||
#[allow(clippy::redundant_closure)]
|
||||
use_hook(|| Signal::memo(move || callback(())))
|
||||
use_hook(|| Memo::new_with_location(move || callback(()), caller))
|
||||
}
|
||||
Reference in new issue
Block a user