use-hook-kits
Version:
  
21 lines (16 loc) • 553 B
JavaScript
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;