useProviderState<T> function
T
useProviderState<
T>({ - required T create(),
- void dispose(
- T
)?,
- required bool maintainState,
})
Implementation
T useProviderState<T>({
required T Function() create,
void Function(T)? dispose,
required bool maintainState,
}) {
final stateRef = useRef<T?>(null);
final isInitialized = useRef(false);
useMemoized(() {
if (!isInitialized.value || !maintainState) {
stateRef.value = create();
isInitialized.value = true;
}
}, [maintainState]);
useEffect(() {
return () {
if (!maintainState && dispose != null && stateRef.value != null) {
dispose(stateRef.value as T);
}
};
}, [maintainState]);
return stateRef.value as T;
}