UNPKG

@td-design/rn-hooks

Version:

从ahooks里面抽取的一些在rn项目里可以使用的hooks。提高开发效率

28 lines (25 loc) 849 B
import { useRef, useEffect } from 'react'; import { isNumber } from 'lodash-es'; import useMemoizedFn from '../useMemoizedFn/index.js'; function useInterval(fn, delay, options) { var _a; var immediate = (_a = options === null || options === void 0 ? void 0 : options.immediate) !== null && _a !== void 0 ? _a : false; var timerCallback = useMemoizedFn(fn); var timer = useRef(); useEffect(function () { if (!isNumber(delay) || delay < 0) return; if (immediate) { timerCallback(); } timer.current = setInterval(timerCallback, delay); return clear; }, [delay, immediate]); var clear = useMemoizedFn(function () { if (timer.current) { clearInterval(timer.current); } }); return clear; } export { useInterval as default };