【发布时间】:2021-04-18 18:36:15
【问题描述】:
这个钩子是我写的(可能有bug,我还没用过):
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;
}
有没有办法可以让这个钩子的穷举-deps 规则 lint 用法?
useThrottledCallback(() => (a + b + c)}, 100, [])
在这种用法中,我想知道a、b 和c 需要在依赖数组中。
【问题讨论】:
-
其实有个bug,你不想
...你的部门:((x,y,...z) =>[x,y,z])(1, 2,[3]) === [1,2,[[3]]] -
啊,说得好。我想我最初打算将 deps 列表作为常规参数传递,但您可以在我的使用示例中看到我最终没有这样做。不错的收获!
标签: reactjs react-hooks eslint eslint-plugin-react-hooks