UNPKG

@darwish/hooks-core

Version:

27 lines (26 loc) 746 B
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;