UNPKG

@wayz/react-gl

Version:

React Component for DeckGL, Base on AMap, Mapbox GL

20 lines (19 loc) 624 B
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 ${typeof fn}`); } } const fnRef = useRef(fn); fnRef.current = useMemo(() => fn, [fn]); const memoizedFn = useRef(); if (!memoizedFn.current) { memoizedFn.current = function (...args) { // @ts-expect-error return fnRef.current.apply(this, args); }; } return memoizedFn.current; } export default useMemoizedFn;