你想知道的关于 Refs 的知识都在这了

Refs 提供了一种方式,允许我们访问 DOM 节点或在 render 方法中创建的 React 元素。

Refs 使用场景

在某些情况下,我们需要在典型数据流之外强制修改子组件,被修改的子组件可能是一个 React 组件的实例,也可能是一个 DOM 元素,例如:

  • 管理焦点,文本选择或媒体播放。
  • 触发强制动画。
  • 集成第三方 DOM 库。

设置 Refs

1. createRef

createRef 是 React16.3 版本中引入的。

创建 Refs

使用 React.createRef() 创建 Refs,并通过 ref 属性附加至 React 元素上。通常在构造函数中,将 Refs 分配给实例属性,以便在整个组件中引用。

访问 Refs

当 ref 被传递给 render 中的元素时,对该节点的引用可以在 ref 的 current 属性中访问。

import React from 'react';
export default class MyInput extends React.Component {
constructor(props) {
super(props);
//分配给实例属性
this.inputRef = React.createRef(null);
}
componentDidMount() {
//通过 this.inputRef.current 获取对该节点的引用
this.inputRef && this.inputRef.current.focus();
}
render() {
//把 <input> ref 关联到构造函数中创建的 `inputRef` 上
return (
<input type="text" ref={this.inputRef}/>
)
}
}

<< · Back Index ·>>

发表回复

相关推荐

關於達佈和【定理】的證明歷程

0. 寫在前面第一次編輯: 第一次用 rm LaTeX 排版寫文章,格式爛得一批,輕噴。畢竟各位都是學習知識的,排版能看就行吧第二次...

· 1分钟前

長胎記有福氣?這種胎記會癌變的!

寶寶出生屁股上大塊的淤青,身上甚至臉上各種紅色、粉色、咖啡色等等不一樣的斑痣,這些都是怎麼形成呢?難道真的是傳說“上帝...

· 3分钟前

2023年当涂县公办幼儿园劳务派遣制专任教师公开招聘公告

为进一步加强幼儿园教师队伍建设,促进当涂县学前教育事业发展,受当涂县教育局委托,马鞍山姑溪劳务服务有限公司负责承办本 ...

· 4分钟前

天干地支60型人格(十九)五行旺相休囚死及十二生旺死绝表探源

十二生旺死绝表 十二生旺死绝表是从五行旺相休囚死来的。 我认为,五行旺相休囚死讲的是月气,一年十二月 十二生旺死绝表 ...

· 5分钟前

每日一犬 · 喜樂蒂牧羊犬

喜樂蒂牧羊犬喜樂蒂牧羊犬在英國和美國的受歡迎程度遠遠超過柯利牧羊犬是最受歡迎的十種傢養犬之一喜樂蒂牧羊犬 肩 高:33cm-...

· 7分钟前