Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

149
Vistas
¿Hay alguna forma de usar un objeto de evento dentro del método componentDidMount de React?

Tengo dos componentes, el componente de la aplicación y un componente SearchBar. El componente SearchBar es un componente funcional y el envío del formulario se maneja mediante un método llamado handleSubmit que se define en el componente de la aplicación y se transmite a través de accesorios. El método handleSubmit que se define en el componente de la aplicación que primero evita el comportamiento predeterminado del envío de formularios del navegador y luego realiza una llamada asíncrona a una API de YouTube. La llamada API siempre tiene éxito y funciona cada vez que busco algo a través del formulario, digamos "edificios". Pero quiero mostrar un video predeterminado cuando el componente se renderiza por primera vez, por ejemplo, "juegos". Así que llamé al método handleSubmit en componentDidMount, que da un error "Rechazo no controlado (Error de tipo): no se pueden leer las propiedades de undefined (leyendo 'preventDefault')". ¿Hay alguna forma de que pueda usar un objeto de evento dentro de componentDidMount?

Aquí está mi código:

aplicación:

 class App extends React.Component { constructor(props) { super(props); this.state = { inputValue: "", videos: [], selectedVideo: null, }; } componentDidMount() { this.handleSubmit("games"); } // handle form submission handleSubmit = async (query, e) => { e.preventDefault(); // API call }; // handle change in input onIputChange = (e) => { const inputValue = e.target.value; this.setState({ inputValue }); }; render() { const inputValue = this.state.inputValue; return ( <div> <SearhBar handleSubmit={(e) => this.handleSubmit(inputValue, e)} inputValue={inputValue} onInputChange={this.onIputChange} /> </div> ); }

Barra de búsqueda:

 function SearhBar(props) { return ( <form onSubmit={props.handleSubmit}> <label>Search Video</label> <input onChange={props.onInputChange} type="text" value={props.inputValue} /> </form> ); }
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

No, no puedes porque simplemente no tienes un evento allí... Puedes hacer dos cosas:

  • rodee e.preventDefault con un if (e) e.preventDefault()
  • extraiga la parte común callApi a un método y llame a ese método desde componentDidMount :
 // handle form submission handleSubmit = async (query, e) => { e.preventDefault(); this.callApi(query) }; componentDidMount() { this.callApi("games"); } callApi(query) { // code to call api }
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda