UNPKG

@td-design/rn-hooks

Version:

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

30 lines (26 loc) 845 B
'use strict'; var react = require('react'); var lodashEs = require('lodash-es'); var index = require('../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 = index(fn); var timer = react.useRef(); react.useEffect(function () { if (!lodashEs.isNumber(delay) || delay < 0) return; if (immediate) { timerCallback(); } timer.current = setInterval(timerCallback, delay); return clear; }, [delay, immediate]); var clear = index(function () { if (timer.current) { clearInterval(timer.current); } }); return clear; } module.exports = useInterval;