useEffect 依赖项中缺少 ref 时没有 eslint 警告

No eslint warning when ref is missing in useEffect dependency

我对 useEffect 中的 ref 有一个疑问。 我需要将它添加到依赖项吗?

const App = () => {
  const ref = useRef();
  useEffect(() => {
    //do something about ref
  }, []); //<-- ref is not here
}

以上代码没有给出任何 eslint 警告。 ref 是否在依赖项中被豁免?

简短的回答是肯定的,您不必将 ref 添加到依赖项数组。

为了更深入的理解,您可以阅读 Dan Abramov 的 A Complete Guide to useEffect。那里的一句话回答了你的问题:

(You may omit dispatch, setState, and useRef container values from the deps because React guarantees them to be static. But it also doesn’t hurt to specify them.)