【发布时间】:2019-12-12 20:18:15
【问题描述】:
我一直在我的函数组件中使用 useRef 作为类实例变量的替代方法,我非常喜欢它。所以通常它是这样的:
先声明变量,例如scrollRef:
const scrollRef = useRef()
然后,将某个 ref 的值赋给scrollRef.current:
<ScrollView ref={ref => { scrollRef.current = ref }}>
// (Yeah, I'm doing mostly React Native)
最后,使用 ref:
<TouchableOpacity onPress={() => scrollRef.current.scrollToEnd()} />
这很好用。但是当我有很多useRefs 时,我似乎有两个问题:
-
.current无处不在 - 在组件之间传递 ref 时会出现一些棘手的情况和混淆,当我们不确定是直接读取值还是读取
.current键时。
所以我想知道是否有更好的方法。
我想过用let来声明变量而不是const,然后直接赋值给.current:
let myRef = useRef().current
然后直接读取变异myRef
这样做有什么缺点,有没有这种方法行不通的情况?有没有更好的解决方案来避免到处使用.current?
【问题讨论】:
标签: reactjs react-hooks