pub fn use_mut_latest<'hook, T>(
value: T,
) -> impl 'hook + Hook<Output = UseMutLatestHandle<T>>where
T: 'static + 'hook,Expand description
This hook returns the latest mutable ref to state or props.
§Example
use yew_hooks::prelude::*;
#[function_component(UseMutLatest)]
fn mut_latest() -> Html {
let state = use_state(|| 0);
let interval = use_mut_ref(|| None);
let closure = {
let state = state.clone();
move || state.set(*state + 1)
};
let latest_closure = use_mut_latest(closure);
use_effect_with((), move |_| {
*interval.borrow_mut() = Some(Interval::new(1000, move || {
let latest_closure = latest_closure.current();
let closure = &*latest_closure.borrow_mut();
// This will get the latest closure and increase state by 1 each time.
closure();
}));
move || *interval.borrow_mut() = None
});
html! {
<div>
<p>
<b>{ "Latest value: " }</b>
{ *state }
</p>
</div>
}
}§Note
When used in function components and hooks, this hook is equivalent to:
pub fn use_mut_latest<T>(value: T) -> UseMutLatestHandle<T>
where
T: 'static,
{
/* implementation omitted */
}