如何使用 React createRef
Posted chenzxl
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用 React createRef相关的知识,希望对你有一定的参考价值。
React 提供三种方式创建 Refs:
- 字符串 Refs (将被废弃)
- 回调函数 Refs
- 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.JS Ref 中的 Ref 错误 - createRef、useRef 和 using Refs