[英]Linter complains about empty dependency array in React Native hooks
在 React Native 的useEffect
中,使用空的依赖数组是可以接受的(这通常是出于正当理由故意这样做的)。
在 useEffect 中,不提供依赖数组和空数组有什么区别?
然而 Linter 一直在抱怨并建议要么添加某些参数作为依赖数组的元素,要么将其删除。 删除依赖数组不是我的选择。 我是否应该接受 Linter 建议并将一长串项目添加到依赖项数组中? 还是有一种简单的方法可以更改 Linter 设置?
AFAIK 没有配置react-hooks/exhaustive-deps
linting 规则,但您可以忽略特定行的 eslint 规则。
如果您真的希望效果在组件安装时只运行一次,那么使用空依赖数组是正确的。 您可以禁用该行的 eslint 规则以忽略它。
useEffect(() => {
... business logic ...
// NOTE: Run effect once on component mount, please
// recheck dependencies if effect is updated.
// eslint-disable-next-line react-hooks/exhaustive-deps
}, []);
注意:如果您稍后更新效果并且它需要在其他依赖项之后运行,那么这个禁用的评论可能会掩盖未来的错误,所以我建议留下一个相当公开的评论,作为覆盖已建立的 linting 规则的原因。
通常 linter 建议(添加依赖项)是最好的解决方案,因为通常当效果中使用的一些变量发生变化时,您会想要重新运行效果。 有关更多信息,请参阅https://typeofnan.dev/you-probably-shouldnt-ignore-react-hooks-exhaustive-deps-warnings/ 。 也在这里讨论过: https://github.com/facebook/react/issues/14920
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.