1

使用这样的模式是否安全:

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

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

我只是想知道在某些情况下是否有一些“陷阱”会让我感到惊讶。

4

1 回答 1

5

看不到您的版本有任何问题,但是

const appLoaders = useRef();

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

PS 实际上useRef不是替代品React.createRef(它们有不同的目的但名称相似,有时人们会误解/误用),所以不要被相似性所迷惑。

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

于 2020-02-19T08:32:18.780 回答