我写了这个钩子(可能有错误,我还没用过):
import { useCallback, useEffect } from 'react';
import _throttle from 'lodash/throttle';
export function useThrottledCallback(cb, delay, ...deps) {
const callback = useCallback(_throttle(cb, delay), deps);
useEffect(() => {
const lastCallback = callback;
return () => lastCallback.cancel();
}, [callback]);
return callback;
}
有什么办法可以使该钩子的详尽的下降规则变得不规则?
useThrottledCallback(() => (a + b + c)}, 100, [])
在这种用法,我想被通知a
,b
和c
需要被依赖阵列英寸
应该很容易。该文件说:
exhaustive-deps
可以配置为使用AdditionalHooks选项来验证自定义挂钩的依赖性。此选项接受正则表达式以匹配具有依赖项的自定义Hook的名称。
因此,您需要类似:
{
"rules": {
// ...
"react-hooks/exhaustive-deps": ["warn", {
"additionalHooks": "useThrottledCallback"
}]
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句