React.createRef() 在 useMemo 中

React.createRef() inside useMemo

使用这样的模式安全吗:

const appLoaders = useMemo(() => React.createRef(), [])

问题是我在 useEffect 中使用了这个 ref,并且在依赖项数组 (exhaustive-deps) 中需要它。上面的模式可以解决问题,并且一切似乎都有效 - 没有备忘录,当我将 ref 放入依赖项数组时,应用程序一直在重新渲染。

我只是想知道是否有一些 'traps' 在某些情况下会让我感到惊讶。

没有发现您的版本有任何问题,但是

const appLoaders = useRef();

看起来更短但完全一样(重新渲染之间的引用相等,我们设置初始值,更改值不会导致重新渲染)。

PS其实useRef并不是React.createRef的替代品(它们用途不同但名字相似,有时人misunderstand/misuse),所以不要混淆通过相似性。

但在这种特殊情况下,它们绝对可以互换