UNPKG

@taro-hooks/ahooks

Version:
31 lines (30 loc) 967 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var core_1 = require("@taro-hooks/core"); var shared_1 = require("@taro-hooks/shared"); function useMemoizedFn(fn) { if (process.env.NODE_ENV === 'development') { if (!(0, shared_1.isFunction)(fn)) { console.error("useMemoizedFn expected parameter is a function, got " + typeof fn); } } var fnRef = (0, core_1.useRef)(fn); // why not write `fnRef.current = fn`? // https://github.com/alibaba/hooks/issues/728 fnRef.current = (0, core_1.useMemo)(function () { return fn; }, [fn]); var memoizedFn = (0, core_1.useRef)(); if (!memoizedFn.current) { memoizedFn.current = function () { for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } return fnRef.current.apply(this, args); }; } return memoizedFn.current; } exports["default"] = useMemoizedFn;