@td-design/rn-hooks
Version:
从ahooks里面抽取的一些在rn项目里可以使用的hooks。提高开发效率
25 lines (22 loc) • 772 B
JavaScript
import { __read } from '../_virtual/_tslib.js';
import { useState, useEffect } from 'react';
import useDebounceFn from '../useDebounceFn/index.js';
import useUpdateEffect from '../useUpdateEffect/index.js';
/**
* 为 `useEffect` 增加防抖的能力。
* @param effect 执行函数
* @param deps 依赖数组
* @param options 配置防抖的行为
*/
function useDebounceEffect(effect, deps, options) {
var _a = __read(useState({}), 2), flag = _a[0], setFlag = _a[1];
var run = useDebounceFn(function () {
setFlag({});
}, options).run;
useEffect(function () {
return run();
// eslint-disable-next-line react-hooks/exhaustive-deps
}, deps);
useUpdateEffect(effect, [flag]);
}
export { useDebounceEffect as default };