如何在(故意)保留空数组作为依赖项的同时摆脱警告"React Hook useEffect has missing dependencies ..."?



我想有意使用useEffect来执行一些代码一次,当组件被挂载。因此,我有意使用空数组[]作为依赖项。

因为我使用的是TypeScript(我至少认为这是原因),我总是得到警告:"React Hook useEffect缺少依赖项…">

我不想添加预编译器建议的所有依赖项,因为这会导致执行我的useEffect钩子。

在不添加(不需要的,从我的角度来看,不必要的,甚至适得其反的)依赖项的情况下,我可以做些什么来删除警告消息?

如果您真的愿意,您可以通过将依赖项移出useEffect函数体来摆脱警告。这使得预编译器无法检测到实际的依赖关系。例子:

const [a, setA] = useState<string>('abc');
useEffect(() => {
console.log(a);
}, []);

可能成为

const [a, setA] = useState<string>('abc');
function printA() {
console.log(a);
}
useEffect(() => {
printA();
}, []);

您应该意识到副作用——警告有一个很好的理由,并且您的代码可能会导致其他人可能意想不到的行为。

相关内容

  • 没有找到相关文章

最新更新