老师,自定义的hook给useEffect传入依赖时,eslint会自动产生警告,这是为什么呢

来源:3-12 自定义 hook 第三部分 - 正确的方式完成 URLLoader

onjuju

2020-03-31

React Hook useEffect was passed a dependency list that is not an array literal. This means we can't statically verify whether you've passed the correct dependencies.eslint(react-hooks/exhaustive-deps)
React Hook useEffect has a missing dependency: 'url'. Either include it or remove the dependency array.eslint(react-hooks/exhaustive-deps)

代码和课程的一样,点击快速修复的话,会移除deps并将url添加到依赖里面,有点不理解。

写回答

1回答

张轩

2020-04-01

同学你好,当你的 effect 有任何外部依赖的时候,但是没有放入依赖数组的时候,比如我们代码中的 url,它就会显示第二个警告,当我们传入的是一个数组变量的时候,它没法静态检察里面的成员,那么自然就没法分辨有哪些依赖(第一个警告),所以当出现这些警告要结合实际情况,有可能实际需求就是这样。

0
1
onjuju
在没有系统性地学习hooks前,我就自己试过用一些hook进行开发。当时似乎如果useEffect的依赖如果不准确,保存代码时eslint会自动将回调中用到的,他认为的依赖项填充进去。 非常感谢老师!我会认真学习接下来的课程
2020-04-01
共1条回复

React18+TS高仿AntD从零到一打造组件库

设计,开发,测试,发布再到 CI/CD,从0到1造轮子

2123 学习 · 959 问题

查看课程