如何使用 React createRef

Posted chenzxl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用 React createRef相关的知识,希望对你有一定的参考价值。

React 提供三种方式创建 Refs:

  1. 字符串 Refs (将被废弃)
  2. 回调函数 Refs
  3. React.createRef (从React 16.3开始)

第一种方式不推荐使用,原因在此, 并且可能会在之后的版本移除。

class MyComponent extends React.Component {

  constructor(props) {
    super(props);
    this.toggleInputCase = this.toggleInputCase.bind(this);
    this.state = { uppercase: false };
  }
  
  toggleInputCase() {
    const isUpper = this.state.uppercase;
    const value = this.refs.inputField.value;
    
    this.refs.inputField.value =
      isUpper
        ? value.toLowerCase()
        : value.toUpperCase();
        
    this.setState({ uppercase: !isUpper });
  }

  render() {
    return (
      <div>
        {/* 创建一个字符串 ref: inputField */}
        <input type="text" ref="inputField" />
        
        <button type="button" onClick={this.toggleInputCase}>
          Toggle Case
        </button>
      </div>
    );
  }
  
}

 

第二种方式是

    return (
      <div>
        {/* Creating a callback ref and storing it in this.inputField */}
        <input type="text" ref={elem => this.inputField = elem} />
        
        <button type="button" onClick={this.toggleInputCase}>
          Toggle Case
        </button>
      </div>
    );

 

第三种方式 React.createRef

    return (
      <div>
        {/* Referencing the ref from this.inputField */}
        <input type="text" ref={this.inputField} />
        
        <button type="button" onClick={this.toggleInputCase}>
          Toggle Case
        </button>
      </div>
    );


原文 https://zhuanlan.zhihu.com/p/64412949

以上是关于如何使用 React createRef的主要内容,如果未能解决你的问题,请参考以下文章

在带有 typescript 的 react-native 中使用 createRef?

如何使用 React createRef

我应该使用 createRef 还是 useRef,为啥?

React.JS Ref 中的 Ref 错误 - createRef、useRef 和 using Refs

React 中ref的 React.createRef() 方法

[React] Reference a node using createRef() in React 16.3