@td-design/rn-hooks
Version:
从ahooks里面抽取的一些在rn项目里可以使用的hooks。提高开发效率
24 lines (21 loc) • 739 B
JavaScript
import { __read } from '../_virtual/_tslib.js';
import { useState, useEffect } from 'react';
import useDebounceFn from '../useDebounceFn/index.js';
/**
* 用来处理防抖值的 Hook。
* @param value 需要防抖的值
* @param options 配置防抖的行为
* @returns
*/
function useDebounce(value, options) {
var _a = __read(useState(value), 2), debounced = _a[0], setDebounced = _a[1];
var run = useDebounceFn(function () {
setDebounced(value);
}, options).run;
useEffect(function () {
run();
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [value]); // 每次value变化的时候,都触发debounce的run方法
return debounced;
}
export { useDebounce as default };