如何在ReactJS中手动触发单击事件? 当用户单击Element1时,我希望自动触发对input标记的单击.

<div className="div-margins logoContainer">
  <div id="element1" className="content" onClick={this.uploadLogoIcon}>
    <div className="logoBlank" />
  </div>
  <input accept="image/*" type="file" className="hide"/>
</div>

推荐答案

您可以使用ref属性通过回调获取对基础HTMLInputElement对象的引用,将该引用存储为类属性,然后使用该引用稍后使用HTMLElement.click方法从事件处理程序中触发单击.

在您的render方法中:

<input ref={input => this.inputElement = input} ... />

在事件处理程序中:

this.inputElement.click();

完整示例:

class MyComponent extends React.Component {
  render() {
    return (
      <div onClick={this.handleClick}>
        <input ref={input => this.inputElement = input} />
      </div>
    );
  }

  handleClick = (e) => {
    this.inputElement.click();
  }
}

Note the 100 that provides the correct lexical scope for 101 in the callback. Also note, that the object you acquire this way is an object akin to what you would acquire using 102, i.e. the actual DOM-node.

Html相关问答推荐

Rmarkdown上的垂直标签集

有没有可能一个按钮,有焦点,然后再次点击它清除它的焦点,只是使用css?

如何在不影响子列表的情况下在HTML(OL Li)上同时加数字和列表?

放大缩小标题在外面的图像

HTML5章节或文章

如何在Vim中删除Html标签?

创建带有弯曲边框的水平时间线

在css中,如何在英雄版块的标题后面做一个粘性的导航栏?

Style=背景图像URL引用变成&;Quot;

浮动Div在CSS中未按预期工作

30000ms后超时重试:期望找到元素:someElement,但从未找到它

Swift 以编程方式在 YouTube 嵌入视频中进入全屏

Google Apps 脚本 - RegEx 适用于小文本,但不适用于大文件?

如何避免链接在悬停 timeshift 动,同时增加导航栏中的字体大小?

如何通过像图像一样的 元素来调整 SVG 图标的大小

如何截断一些文本并用双引号引起来?

调整大小时 CSS 溢出

Bootstrap Grid System col 无法正常工作

focusout() Select 器不适用于搜索框

如何在锚点可点击的伪元素周围制作空白?