【问题标题】:React Hooks: How to useRef().current correctly and cleanlyReact Hooks:如何正确干净地使用Ref().current
【发布时间】: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 时,我似乎有两个问题:

  1. .current 无处不在
  2. 在组件之间传递 ref 时会出现一些棘手的情况和混淆,当我们不确定是直接读取值还是读取 .current 键时。

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

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

let myRef = useRef().current

然后直接读取变异myRef

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

【问题讨论】:

    标签: reactjs react-hooks


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-05-25
      • 1970-01-01
      • 2016-08-06
      • 1970-01-01
      • 1970-01-01
      • 2015-07-08
      • 1970-01-01
      相关资源
      最近更新 更多