react helmet event data html reactjs react-jsx

html - helmet - ¿Cómo activar manualmente el evento de clic en ReactJS?



react dataset (5)

¿Qué tal simplemente viejo js? ejemplo:

autoClick = () => { if (something === something) { var link = document.getElementById(''dashboard-link''); link.click(); } }; ...... var clickIt = this.autoClick(); return ( <div> <Link id="dashboard-link" to={''/dashboard''}>Dashboard</Link> </div> );

¿Cómo puedo activar manualmente un evento de clic en ReactJS ? Cuando un usuario hace clic en element1, quiero activar automáticamente un clic en la etiqueta de 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>


Obtuve lo siguiente para trabajar en mayo de 2018 con ES6 React Docs como referencia: https://reactjs.org/docs/refs-and-the-dom.html

import React, { Component } from "react"; class AddImage extends Component { constructor(props) { super(props); this.fileUpload = React.createRef(); this.showFileUpload = this.showFileUpload.bind(this); } showFileUpload() { this.fileUpload.current.click(); } render() { return ( <div className="AddImage"> <input type="file" id="my_file" style={{ display: "none" }} ref={this.fileUpload} /> <input type="image" src="http://www.graphicssimplified.com/wp-content/uploads/2015/04/upload-cloud.png" width="30px" onClick={this.showFileUpload} /> </div> ); } } export default AddImage;


Prueba esto y avísame si no funciona en tu extremo:

<input type="checkbox" name=''agree'' ref={input => this.inputElement = input}/> <div onClick={() => this.inputElement.click()}>Click</div>

Al hacer clic en el div debe simular un clic en el elemento de input


Puede usar el accesorio de ref para adquirir una referencia al objeto HTMLInputElement subyacente a través de una devolución de llamada, almacenar la referencia como una propiedad de clase, luego usar esa referencia para luego activar un clic desde sus controladores de eventos utilizando el método HTMLElement.click .

En su método de render :

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

En su controlador de eventos:

this.inputElement.click();

Ejemplo completo:

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

Tenga en cuenta la función de flecha ES6 que proporciona el alcance léxico correcto para this en la devolución de llamada. También tenga en cuenta que el objeto que adquiere de esta manera es un objeto similar a lo que adquiriría usando document.getElementById , es decir, el nodo DOM real.


Puede usar la devolución de llamada de ref que devolverá el node . Llame click() en ese nodo para hacer un clic programático.

Obteniendo el nodo div

clickDiv(el) { el.click() }

Establecer una ref al nodo div

<div id="element1" className="content" ref={this.clickDiv} onClick={this.uploadLogoIcon} >

Comprueba el violín

https://jsfiddle.net/pranesh_ravi/5skk51ap/1/

¡Espero eso ayude!