useTimeout

import React from "react";

const useTimeout = (callback: () => void, delay: null | number): void => {
    
    
  const savedCallback = React.useRef<any>();

  React.useEffect(() => {
    
    
    savedCallback.current = callback;
  }, [callback]);

  React.useEffect(() => {
    
    
    function tick() {
    
    
      savedCallback.current();
    }
    if (delay !== null) {
    
    
      const id = setTimeout(tick, delay);
      return () => clearTimeout(id);
    }
  }, [delay]);
};

export default useTimeout;

猜你喜欢

转载自blog.csdn.net/printf_hello/article/details/113977067