1 | import React, { useEffect, useRef } from "react";
|
2 |
|
3 | export 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 | }
|