UNPKG

ahooks

Version:
15 lines (14 loc) 610 B
import { useState } from 'react'; import useMemoizedFn from '../useMemoizedFn'; import { isFunction } from '../utils'; function useSetState(initialState) { const [state, setState] = useState(initialState !== null && initialState !== void 0 ? initialState : {}); const setMergeState = useMemoizedFn((patch) => { setState((prevState) => { const newState = isFunction(patch) ? patch(prevState) : patch; return newState ? Object.assign(Object.assign({}, prevState), newState) : prevState; }); }); return [state, setMergeState]; } export default useSetState;