React Hooks:如何正确、干净地使用Ref().current

LaV*_*lle 5 reactjs react-hooks

我一直在我的函数组件中使用 useRef 作为类实例变量的替代品,我真的很喜欢它。所以通常情况是这样的:

首先声明变量,scrollRef例如:

const scrollRef = useRef()
Run Code Online (Sandbox Code Playgroud)

然后,将某些 ref 的值分配给scrollRef.current

<ScrollView ref={ref => { scrollRef.current = ref }}>

// (Yeah, I'm doing mostly React Native)
Run Code Online (Sandbox Code Playgroud)

最后,使用参考:

<TouchableOpacity onPress={() => scrollRef.current.scrollToEnd()} />
Run Code Online (Sandbox Code Playgroud)

这很好用。但是当我有很多useRefs 时,似乎有两个问题:

  1. .current到处都是
  2. 在组件之间传递引用时,当我们不能立即确定是否应该直接读取值或读取键时,会出现一些棘手的情况和混乱.current

所以我想知道是否有更好的方法。

let我想到用而不是声明变量const,然后直接赋值给.current

let myRef = useRef().current
Run Code Online (Sandbox Code Playgroud)

然后直接读取并变异myRef

这样做有什么缺点,是否存在行不通的情况?有没有更好的解决方案来避免.current到处使用?

Dan*_*iel 0

我迟到了,甚至不是反应专家。但是,如果您创建一个指向 的变量current,然后向该变量写入一个新对象,那么您的变量将不再指向ref.current。保留该链接唯一可以做的就是修改变量的属性。