useDebounce.ts 417 字节
Newer Older
1
import {useEffect, useState} from 'react';
P
Peter Pan 已提交
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

const useDebounce = <T>(value: T, delay: number): T => {
    const [debouncedValue, setDebouncedValue] = useState(value);

    useEffect(() => {
        const handler = setTimeout(() => {
            setDebouncedValue(value);
        }, delay);
        return () => clearTimeout(handler);
    }, [value, delay]);

    return debouncedValue;
};

export default useDebounce;