我正在创建一个自定义钩子,并希望定义一个可选参数,以便在需要时传入额外的依赖项.我的代码如下所示:
import { useEffect } from 'react';
function useCustomHook(param1, extraDeps) {
useEffect(() => {
// do something with param1 here
}, [param1, ...extraDeps])
}
react hooks/deps发出警告:
React Hook useEffect的依赖项数组中有一个扩展元素.这意味着我们无法静态验证您是否通过了正确的依赖项
有人知道如何应对这个警告吗?或者将deps数组传递给自定义钩子不是一种好的做法?
对于那些对为什么需要extraDeps感兴趣的人.下面是一个例子:
const NewComponent = (props) => {
[field1, setField1] = useState()
[field2, setField2] = useState()
// I only want this to be called when field1 change
useCustomHook('.css-selector', [field1]);
return <div>{field1}{field2}</div>;
}