useRefFunc.js 597 B

1234567891011121314151617181920
  1. "use strict";
  2. var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
  3. Object.defineProperty(exports, "__esModule", {
  4. value: true
  5. });
  6. exports.default = useRefFunc;
  7. var React = _interopRequireWildcard(require("react"));
  8. /**
  9. * Same as `React.useCallback` but always return a memoized function
  10. * but redirect to real function.
  11. */
  12. function useRefFunc(callback) {
  13. var funcRef = React.useRef();
  14. funcRef.current = callback;
  15. var cacheFn = React.useCallback(function () {
  16. return funcRef.current.apply(funcRef, arguments);
  17. }, []);
  18. return cacheFn;
  19. }