@react-hookz/web
Version:
React hooks done right, for browser and SSR.
18 lines (17 loc) • 555 B
JavaScript
import { useCallback, useState } from 'react';
import { useIsMounted } from '..';
/**
* Like `useState` but its state setter is guarded against sets on unmounted component.
*/
export function useSafeState(initialState) {
var _a = useState(initialState), state = _a[0], setState = _a[1];
var isMounted = useIsMounted(true);
return [
state,
useCallback(function (value) {
if (isMounted())
setState(value);
// eslint-disable-next-line react-hooks/exhaustive-deps
}, []),
];
}