隐藏并唤起一个 file input [React]

一个容器组件:

class FooContainer extends React.Component {
  ...
}

其中渲染一个隐藏的 <input>

render() {
  return (
    ...
      <input hidden type="file"/>
    ...
  )
}

在构造函数中通过React.createRef()创建Refs并通过ref属性联系到React组件,假设需要关联组件的变量名为inputElement

constructor(props) {
  super.(props)
  this.inputElement = React.createRef()
}

<input> 添加 ref 属性

render() {
  return (
    ...
      <input hidden type="file" ref={this.inputElement}/>
    ...
  )
}

渲染一个按钮,并绑定它的onClick事件,在回调函数中即可通知 inputElement 点击:

...
handleFileInputClick = (event) => {
  event.preventDefault()
  this.inputElement.current.click()
}

render() {
  return (
    ...
      <input hidden type="file" ref={this.inputElement}/>
      <a onClick={this.handleFileInputClick}>上传文件</a>
    ...
  )
}
...
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Refs提供了一个访问render()方法内DOM节点或者ReactNode的方法 典型的React数据流中,pr...
    Waitingforyu阅读 1,132评论 0 0
  • 欢迎访问主页,有更多文章内容转载请注明原出处原文链接地址:React中Refs的使用方法 什么是Refs Refs...
    Vincent_cy阅读 2,362评论 0 2
  • 由于React的单向数据流设计,所以典型的 React 数据流中, 属性(props)是父组件与子组件交互的唯一方...
    Never_er阅读 758评论 0 2
  • 1、定义 在React 数据流中,props是父组件与子组件交互的唯一方式。需要修改子组件,要使用新的props来...
    Kevin丶CK阅读 1,573评论 0 2
  • 1. context 创建一个Context对象 注意 : 将 undefined 传递给 Provider 时,...
    小王加油阅读 349评论 0 0