useDebounce.js 354 B

12345678910111213
  1. import * as React from 'react';
  2. export default function useDebounce(value) {
  3. const [cacheValue, setCacheValue] = React.useState(value);
  4. React.useEffect(() => {
  5. const timeout = setTimeout(() => {
  6. setCacheValue(value);
  7. }, value.length ? 0 : 10);
  8. return () => {
  9. clearTimeout(timeout);
  10. };
  11. }, [value]);
  12. return cacheValue;
  13. }