Skip to content

Instantly share code, notes, and snippets.

@davalapar
Created January 15, 2020 09:15
Show Gist options
  • Save davalapar/ecdc74913d4c5b10a6085b0494442dd7 to your computer and use it in GitHub Desktop.
Save davalapar/ecdc74913d4c5b10a6085b0494442dd7 to your computer and use it in GitHub Desktop.

Revisions

  1. davalapar created this gist Jan 15, 2020.
    14 changes: 14 additions & 0 deletions useDebounce.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,14 @@

    /**
    * // https://dev.to/gabe_ragland/debouncing-with-react-hooks-jci
    * const [value, setValue] = useState()
    * const debouncedValue = useDebounce(value, 800)
    */
    function useDebounce(nextValue, delay) {
    const [currentValue, setCurrentValue] = useState(nextValue);
    useEffect(() => {
    const handler = setTimeout(() => setCurrentValue(nextValue), delay);
    return () => clearTimeout(handler);
    }, [nextValue, delay]);
    return currentValue;
    }