useSafeState.js 318 Bytes
Newer Older
Sangjune Bae's avatar
Sangjune Bae committed
1
2
3
4
5
6
7
8
9
10
11
12
import { useCallback } from 'react';
import useMounted from './useMounted';

function useSafeState(state) {
  var isMounted = useMounted();
  return [state[0], useCallback(function (nextState) {
    if (!isMounted()) return;
    return state[1](nextState);
  }, [isMounted, state[1]])];
}

export default useSafeState;