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

95
Vistas
Elemento creado con document.createElement dentro de un if Condición no reconocida fuera

He estado tratando de usar createElement dentro de una declaración if pero simplemente no funciona. El headerLink no se reconoce fuera de la instrucción if.

¿Alguien puede explicar lo que falta?

Lo que he probado hasta ahora:

  1. Declarar headerLink fuera de la instrucción if. esto no funciona

  2. Si muevo appendChild y removeChild dentro de la declaración if, comienza a funcionar. Pero eso daría como resultado un código duplicado ya que tendré que copiar lo mismo dentro de la declaración else

     React.useEffect(() => { const head = document.head; const scriptType = "text/css"; if (scriptType === "text/css") { const headerLink = document.createElement( "link" ); } else { const headerLink = document.createElement( "script" ); } // this line doesn't work - headerLink is not recognized head.appendChild(headerLink); return () => { // this line doesn't work - again, headerLink is not recognized head.removeChild(headerLink); }; }, []);
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Puede mover la declaración del headerLink fuera de la cláusula if . Pero tendrás que usar let en ese caso.

 let headerLink; if (scriptType === "text/css") { headerLink = document.createElement( "link" ); } else { headerLink = document.createElement( "script" ); }

O puede usar el operador condicional ternario para crear un elemento

 const headerLink = document.createElement( scriptType === "text/css" ? "link" : "script" );
about 4 years ago · Juan Pablo Isaza Denunciar

0

Sobre la base de la respuesta de Aditya y el comentario anterior de Sandil, resolvió el problema

 useEffect(() => { const head = document.head; let headerScript: HTMLLinkElement | HTMLScriptElement; if(scriptType === "text/css") { headerScript = document.createElement( "link" ); } else { headerScript = document.createElement( "script" ); } head.appendChild(headerScript); return () => { head.removeChild(headerScript); }; }, []);
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