UNPKG

430 BJavaScriptView Raw
1import React, { useEffect, useRef } from "react";
2
3export default function useInterval(callback, delay) {
4 const savedCallback = useRef();
5
6 useEffect(() => {
7 savedCallback.current = callback;
8 });
9 useEffect(() => {
10 function tick() {
11 savedCallback.current();
12 }
13 if (delay !== null) {
14 let id = setInterval(tick, delay);
15 return () => clearInterval(id);
16 }
17 }, [delay]);
18}