useFrame.js 442 B

123456789101112131415161718192021
  1. import { useRef, useEffect } from 'react';
  2. import raf from "rc-util/es/raf";
  3. /**
  4. * Always trigger latest once when call multiple time
  5. */
  6. export default (function () {
  7. var idRef = useRef(0);
  8. var cleanUp = function cleanUp() {
  9. raf.cancel(idRef.current);
  10. };
  11. useEffect(function () {
  12. return cleanUp;
  13. }, []);
  14. return function (callback) {
  15. cleanUp();
  16. idRef.current = raf(function () {
  17. callback();
  18. });
  19. };
  20. });