UNPKG

@react-hookz/web

Version:

React hooks done right, for browser and SSR.

18 lines (17 loc) 555 B
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 }, []), ]; }