UNPKG

@darwish/hooks-core

Version:

32 lines (31 loc) 1.03 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); var react_1 = require("react"); var useUpdateEffect_1 = __importDefault(require("./useUpdateEffect")); /** * @description 让useUpdateEffect只执行一次 * @param effect 回调函数 * @param condition 执行条件 */ function useUpdateEffectOnce(effect, condition) { if (condition === void 0) { condition = true; } var flag = (0, react_1.useRef)(condition); var once = (0, react_1.useRef)(true); (0, useUpdateEffect_1.default)(function () { if (condition && once.current) { flag.current = true; once.current = false; } if (flag.current) { effect(); flag.current = false; } return function () { flag.current = false; }; }, [condition]); } exports.default = useUpdateEffectOnce;