ahooks
Version:
react hooks library
15 lines (14 loc) • 626 B
JavaScript
import { useRef, useState } from 'react';
import { isFunction } from '../utils';
import useMemoizedFn from '../useMemoizedFn';
import useCreation from '../useCreation';
const useResetState = (initialState) => {
const initialStateRef = useRef(initialState);
const initialStateMemo = useCreation(() => isFunction(initialStateRef.current) ? initialStateRef.current() : initialStateRef.current, []);
const [state, setState] = useState(initialStateMemo);
const resetState = useMemoizedFn(() => {
setState(initialStateMemo);
});
return [state, setState, resetState];
};
export default useResetState;