Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

174
Visualizações
Definir etiquetas de script dinámicamente al reaccionar

Mi proyecto tiene que usar dos plantillas diferentes (usuario/panel). Entonces necesito definir dinámicamente las etiquetas de java script. Intenté tantas cosas pero no resolví mi problema. En la última solución en el código a continuación, a veces los scripts se cargan correctamente, a veces no. Tengo varios errores de consola. ¿Cómo puedo cargar etiquetas de script Java como la página html?

 import '../assets/css/bootstrap.css'; import '../assets/css/style.css'; import '../assets/css/responsive.css'; import React,{useState,useEffect} from 'react'; import {Helmet} from 'react-helmet'; export function Home(){ var loadScript = function(src) { var tag = document.createElement('script'); tag.async = true; tag.src = src; document.body.appendChild(tag); } loadScript('./assets/js/jquery.js'); loadScript('./assets/js/bootstrap.min.js'); loadScript('./assets/js/popper.min.js'); loadScript('./assets/js/jquery-ui.js'); loadScript('./assets/js/jquery.fancybox.js'); return( <div> <Helmet> <title>{model.Title}</title> <meta name="description" content={model.Desc}/> <meta name="keywords" content={model.Keys}/> <meta http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum- scale=1.0, user-scalable=0"></meta> </Helmet> ....... </div> ) }
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Debe llamar al script loadScript dentro de useEffect y también debe eliminar el script cuando desmonte el componente.

 import '../assets/css/bootstrap.css'; import '../assets/css/style.css'; import '../assets/css/responsive.css'; import React,{ useEffect } from 'react'; import { Helmet } from 'react-helmet'; const useScript = (src) => { useEffect(() => { const tag = document.createElement('script'); tag.async = true; tag.src = src; document.body.appendChild(tag); return () => { document.body.removeChild(tag); } }, [src]) } export function Home(){ useScript('./assets/js/jquery.js'); useScript('./assets/js/bootstrap.min.js'); useScript('./assets/js/popper.min.js'); useScript('./assets/js/jquery-ui.js'); useScript('./assets/js/jquery.fancybox.js'); return( <div> <Helmet> <title>{model.Title}</title> <meta name="description" content={model.Desc}/> <meta name="keywords" content={model.Keys}/> <meta http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum- scale=1.0, user-scalable=0"></meta> </Helmet> ....... </div> ) }

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda