@darwish/hooks-core
Version:
32 lines (31 loc) • 1.03 kB
JavaScript
;
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;