实现react自定义hook

101 阅读1分钟
  • useSyncState  ( 同步的state )

    import { useRef, useState } from 'react'; import { debounce } from 'lodash'; export default function useSyncState(initState, wait = 0) { const startRef = useRef(initState), [, forceUpdate] = useState(null);

    const setState = debounce((state) => { if (!Object.is(state, startRef.current)) { startRef.current = state; forceUpdate({}); } }, wait);

    return [startRef, setState]; }