@darwish/hooks-core
Version:
27 lines (26 loc) • 746 B
JavaScript
import { useRef } from 'react';
import useUpdateEffect from './useUpdateEffect';
/**
* @description 让useUpdateEffect只执行一次
* @param effect 回调函数
* @param condition 执行条件
*/
function useUpdateEffectOnce(effect, condition) {
if (condition === void 0) { condition = true; }
var flag = useRef(condition);
var once = useRef(true);
useUpdateEffect(function () {
if (condition && once.current) {
flag.current = true;
once.current = false;
}
if (flag.current) {
effect();
flag.current = false;
}
return function () {
flag.current = false;
};
}, [condition]);
}
export default useUpdateEffectOnce;