我想有意使用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();
}, []);
您应该意识到副作用——警告有一个很好的理由,并且您的代码可能会导致其他人可能意想不到的行为。