栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在React中访问DOM元素?什么是React中document.getElementById()的等效项

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在React中访问DOM元素?什么是React中document.getElementById()的等效项

您可以通过指定

ref

编辑:

React 16.3+中 ,用于

React.createRef()
创建引用:

class MyComponent extends React.Component {  constructor(props) {    super(props);    this.myRef = React.createRef();  }  render() {    return <div ref={this.myRef} />;  }}

为了访问元素,请使用:

const node = this.myRef.current;

使用React.createRef()的DOC


编辑

但是,facebook建议不要这样做,因为字符串引用存在一些问题,被认为是旧问题,并且很可能在将来的发行版中被删除。

从文档:

旧版API:字符串引用

如果您以前使用过React,那么您可能会熟悉一个较旧的API,其中ref属性是一个字符串,例如“
textInput”,并且可以通过this.refs.textInput访问DOM节点。我们建议不要这样做,因为字符串引用存在一些问题,被认为是旧问题,并且很可能在将来的发行版中删除。如果您当前正在使用this.refs.textInput访问引用,则建议改用回调模式。

对于 React 16.2和更早版本, 推荐的方法是使用回调模式:

<Progressbar completed={25} id="Progress1" ref={(input) => {this.Progress[0] = input }}/><h2 ></h2><Progressbar completed={50} id="Progress2" ref={(input) => {this.Progress[1] = input }}/>  <h2 ></h2><Progressbar completed={75} id="Progress3" ref={(input) => {this.Progress[2] = input }}/>

DOC使用回调


甚至旧版本的react定义的引用都使用如下字符串

<Progressbar completed={25} id="Progress1" ref="Progress1"/>    <h2 ></h2>    <Progressbar completed={50} id="Progress2" ref="Progress2"/>      <h2 ></h2>    <Progressbar completed={75} id="Progress3" ref="Progress3"/>

为了得到元素就做

var object = this.refs.Progress1;

记住要

this
在箭头功能块内使用,例如:

print = () => {  var object = this.refs.Progress1;  }

等等…



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/405012.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号