1
0

use_memo.rs 542 B

1234567891011121314
  1. use crate::use_callback;
  2. use dioxus_core::prelude::*;
  3. use dioxus_signals::Memo;
  4. #[doc = include_str!("../docs/derived_state.md")]
  5. #[doc = include_str!("../docs/rules_of_hooks.md")]
  6. #[doc = include_str!("../docs/moving_state_around.md")]
  7. #[track_caller]
  8. pub fn use_memo<R: PartialEq>(mut f: impl FnMut() -> R + 'static) -> Memo<R> {
  9. let callback = use_callback(move |_| f());
  10. let caller = std::panic::Location::caller();
  11. #[allow(clippy::redundant_closure)]
  12. use_hook(|| Memo::new_with_location(move || callback(()), caller))
  13. }