use-safe-dispatch.ts 384 B

1234567891011121314151617
  1. import * as React from 'react'
  2. import useIsMounted from './use-is-mounted'
  3. function useSafeDispatch<T>(dispatch: React.Dispatch<T>) {
  4. const mounted = useIsMounted()
  5. return React.useCallback<(args: T) => void>(
  6. action => {
  7. if (mounted.current) {
  8. dispatch(action)
  9. }
  10. },
  11. [dispatch, mounted]
  12. ) as React.Dispatch<T>
  13. }
  14. export default useSafeDispatch