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

118
Vistas
Usando el controlador de eventos nativo html con el renderizado de React Server

Tengo una aplicación de reacción que primero renderizará el servidor para crear el marcado html y luego volverá a renderizar el cliente en el navegador.

mi aplicación regresa

 <img classname="classA" src="invalid-src" fallbacksrc="valid-src" style="visibility:hidden"/>

Estoy tratando de usar el controlador de eventos onerror para reemplazar src con un src alternativo válido, y uso el controlador de carga para eliminar style="visibility:hidden". Sé que React tiene onError y onLoad, pero como uso el renderizado del lado del servidor, se generará el html estático, me gustaría usar el controlador de eventos onerror y onload nativo de html porque no quiero esperar el renderizado de reacción del lado del cliente con javascript.

lo que hice fue agregar manualmente el controlador de eventos en mi plantilla html

 <html> <{react-server-rendered-html}/> <script> var images = document.getElementsByClassName("classA"); for (img of images) { img.addEventListener("error", function e() { const i = this.getAttribute("fallbacksrc"); i && (this.src = i), this.removeEventListener("error", e) }), img.addEventListener("load", function e() { console.log("onloading", this.src), "hidden" === this.style.visibility && (this.style.visibility = null), img.removeEventListener("load", e) }); } </script> </html>

Esto funciona bien, excepto que el evento de carga se ejecuta después de que React renderice en el lado del cliente. Hice la solución alternativa para agregar un contenedor <div> a mi <img>, el problema se resolvió, el evento de carga se ejecutó antes de que el lado del cliente reaccionara. Sin embargo, me gustaría ver si hay alguna solución que no necesite agregar un envoltorio adicional.

PD. envuelto con React.Fragment tampoco funciona.

about 4 years ago · Juan Pablo Isaza
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