在react开发过程中,有时会碰到一些需求需要我们去操控dom,那么我们就可以给组件挂载一个ref属性,然后就可以通过ref调用这个组件的方法或者属性之类的。
接下来我们就来看看函数组件和类组件都是如何去挂载创建ref和使用它的:
函数式组件(Hook):
import React, { useRef } from 'react;
function Content() {
const fileInputEl = useRef(null);
return (
<>
{}
<input ref={fileInputEl} type={'file'} hidden />
{}
{}
<div onClick={() => fileInputEl.current.click()}>上传文件</div>
</>
)
}
类组件创建使用ref
import React, { Component } from 'react';
export default class Content extends Component {
constructor(props) {
super(props);
this.editTableEl = React.createRef();
}
componentWillReceiveProps() {
this.editTableEl.current && this.editTableEl.current.refreshDataSource();
}
render() {
return (
<div>
<EditableTable
ref={this.editTableEl}
/>
</div>
)
}
}