UNPKG

use-hook-kits

Version:

![npm](https://img.shields.io/npm/dt/use-hook-kits.svg) ![npm](https://img.shields.io/npm/v/use-hook-kits.svg) ![NpmLicense](https://img.shields.io/npm/l/use-hook-kits.svg)

21 lines (16 loc) 553 B
import {useRef, useEffect} from 'react' const useInterval = (factory, delay, startImmediate = true) => { const savedCallback = useRef(); // Remember the latest factory. useEffect(() => { savedCallback.current = factory; }, [factory]); useEffect(() => { const tick = () => savedCallback.current(); if (delay !== null && startImmediate) { const id = setInterval(tick, delay); return () => clearInterval(id); } }, [delay, startImmediate]); }; export default useInterval;