React Ref

React 支持一个特殊的、可以附加到任何组件上的 ref 属性。

此属性可以是一个对象(React 16.3)、或者一个回调函数、或者一个字符串(遗留 API)。

interface RefObject<T> {
   
   
  readonly current: T | null;
}

type RefCallback<T> = {
   
    bivarianceHack(instance: T | null): void }["bivarianceHack"];

type LegacyRef<T> = string | RefCallback<T> | RefObject<T> | null;

在典型的 React 数据流中,props 是父组件与子组件交互的唯一方式。要修改一个子组件,你需要使用新的 props 来重新渲染它。但是,在某些情况下,你需要在典型数据流之外强制修改子组件。那么就可以通过 ref 获取到子组件的一个实例,或者一个dom元素。

字符串

用于类组件中,例如设置了ref="inputRef",可以通过 this.refs.inputRef 获取到 DOM 节点/React实例

class StringRef extends React.Component {
   
   
  render() {
   
   
    return <>
      <input ref="inputRef" />&nbsp;&nbsp;
      <Button ref="btnRef" onClick={
   
   () => {
   
   
        this.refs.inputRef.value = "Click"
      }}>Click</Button>
    </>
  }

  componentDidMount() {
   
   
    console
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

青菜小王子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值