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

304
Vistas
El código React JS Legacy se describe como `hacky`, ¿por qué el autor afirmaría esto?

Tengo un código heredado de un sitio en el que estoy trabajando actualmente, y el autor agregó algunos comentarios que indican que la solución que codificaron era un poco hacky .

¿Alguien sabría por qué ese sería el caso, y por qué habrían dicho eso?

 const onClickDownloadFile = (id, filename) => { const token = state.token; if (token === "") { return; } const req = new Request(process.env.REACT_APP_API_URL + "/path/" + id ); fetch(req, { headers: new Headers({ "Authorization": "Bearer " + token, "Accept": "application/octet-stream" }), method: "GET" }) .then(res => res.blob()) .then((data) => { // This is a little hacky but gives a download link the browser will understand const url = window.URL.createObjectURL(new Blob([data])); const link = document.createElement("a"); link.href = url; link.setAttribute("download", filename); document.body.appendChild(link); link.click(); link.parentNode.removeChild(link); }) }
about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Probablemente respaldado no puede enviar encabezados HTTP adecuados como "disposición de contenido: archivo adjunto". Al tratar de solucionarlo en el lado de la interfaz de usuario, dejamos un código que intenta simular hacer clic en el enlace para que el navegador comience a buscar el recurso.

Crear un enlace y hacer clic en él no está relacionado con React self. El autor acaba de intentar arreglar el contrato/acuerdo faltante entre lo que necesita la interfaz de usuario y lo que podría ofrecer el backend.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Sin llegar al autor, nunca sabremos por qué lo consideraron pirateado. Considero este código hacky por dos razones:

  1. El código crea un elemento <a> , establece un enlace, hace clic en él automáticamente y luego lo elimina. La activación manual de clics en elementos es muy complicada, ya que no debemos tomar el control de las acciones del usuario. Más bien, deberíamos capacitarlos para que hagan clic en los elementos, en lugar de que nuestro código lo haga detrás de escena.

  2. Una mejor práctica en React es no usar las API DOM de JavaScript para representar HTML. En su lugar, lee state y props y usa esa información para actualizar el HTML que representa su componente React. Este código no sigue este patrón React. En su lugar, utiliza las API DOM para crear y eliminar esos elementos (como document.createElement() y document.appendChild() y parentNode.removeChild() . En su lugar, le gustaría ver que se agregue algo como lo siguiente en el render() función de su clase o componente React:

 render() { return <a href={someUrl} download>Download your file now<a>; }
about 4 years ago · Juan Pablo Isaza Denunciar

0

Es probable que esto se deba a que están creando un nuevo elemento en el DOM, luego invocando el atributo de download , antes de eliminar el elemento nuevamente. Ciertamente no es la mejor práctica, pero parece hacer el trabajo

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