Files
dioxus/packages/hooks/src/use_memo.rs
T
Evan AlmloffandMatt Hunzinger d1c84d9a25 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>
2024-10-01 15:47:54 +00:00

15 lines
542 B
Rust

use crate::use_callback;
use dioxus_core::prelude::*;
use dioxus_signals::Memo;
#[doc = include_str!("../docs/derived_state.md")]
#[doc = include_str!("../docs/rules_of_hooks.md")]
#[doc = include_str!("../docs/moving_state_around.md")]
#[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(|| Memo::new_with_location(move || callback(()), caller))
}