@wayz/react-gl
Version:
React Component for DeckGL, Base on AMap, Mapbox GL
24 lines (23 loc) • 780 B
JavaScript
import { useMemo, useRef } from 'react';
function useMemoizedFn(fn) {
if (process.env.NODE_ENV === 'development') {
if (typeof fn !== 'function') {
console.error("useMemoizedFn expected parameter is a function, got ".concat(typeof fn));
}
}
var fnRef = useRef(fn);
fnRef.current = useMemo(function () { return fn; }, [fn]);
var memoizedFn = useRef();
if (!memoizedFn.current) {
memoizedFn.current = function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
// @ts-expect-error
return fnRef.current.apply(this, args);
};
}
return memoizedFn.current;
}
export default useMemoizedFn;