隱藏并喚起一個 file input [React]

一個容器組件:

class FooContainer extends React.Component {
  ...
}

其中渲染一個隱藏的 <input>

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

在構(gòu)造函數(shù)中通過React.createRef()創(chuàng)建Refs并通過ref屬性聯(lián)系到React組件,假設(shè)需要關(guān)聯(lián)組件的變量名為inputElement

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

<input> 添加 ref 屬性

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

渲染一個按鈕,并綁定它的onClick事件,在回調(diào)函數(shù)中即可通知 inputElement 點擊:

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

render() {
  return (
    ...
      <input hidden type="file" ref={this.inputElement}/>
      <a onClick={this.handleFileInputClick}>上傳文件</a>
    ...
  )
}
...
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Refs提供了一個訪問render()方法內(nèi)DOM節(jié)點或者ReactNode的方法 典型的React數(shù)據(jù)流中,pr...
    Waitingforyu閱讀 1,185評論 0 0
  • 歡迎訪問主頁,有更多文章內(nèi)容轉(zhuǎn)載請注明原出處原文鏈接地址:React中Refs的使用方法 什么是Refs Refs...
    Vincent_cy閱讀 2,522評論 0 2
  • 由于React的單向數(shù)據(jù)流設(shè)計,所以典型的 React 數(shù)據(jù)流中, 屬性(props)是父組件與子組件交互的唯一方...
    Never_er閱讀 823評論 0 2
  • 1、定義 在React 數(shù)據(jù)流中,props是父組件與子組件交互的唯一方式。需要修改子組件,要使用新的props來...
    Kevin丶CK閱讀 1,644評論 0 2
  • 1. context 創(chuàng)建一個Context對象 注意 : 將 undefined 傳遞給 Provider 時,...
    小王加油閱讀 375評論 0 0

友情鏈接更多精彩內(nèi)容