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

149
Visualizações
Obtenga la variable desde la ventana en la aplicación React desde el archivo jQuery

Estoy usando Reaccionar. También tengo un archivo que está escrito en jQuery. (alguien lo escribió y no puede reescribirlo ahora por no tener tiempo).

En ese archivo jQuery hay una variable var test = 2 y después de un tiempo, cambia a test = 5 . Necesito reaccionar en mi componente React cuando cambia ese valor test .

Así que hice esto en el archivo jQuery:

 window.testPromise = new Promise((res, rej) => { setTimeout(() => { res(test) }, 300) })

En mi componente React, hago esto:

 const [test, setTest] = useState(0) (window as any).distancePromise.then((val:number) => { setTest(val); })

pero useState alguna manera está roto ahora. Dice:

Esta expresión no es invocable. Escriba '[number, Dispatch<SetStateAction>]' no tiene firmas de llamada.

¿Alguna idea?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Prueba esto:

 window.distancePromise = () => new Promise((res, rej) => { setTimeout(() => { res("a value for test") }, 300) })

Tenga en cuenta que lo convertí en una función.

Y utilízalo así:

 const [test, setTest] = useState(0) useEffect(() => { (window as any).distancePromise && (window as any).distancePromise().then((val:number) => { setTest(val); }) }, [])

observe el paréntesis de llamada ()

EDITAR: recomendaría evitar las variables de ventana en general. React tiene muchas formas de evitar esto, como el contexto o el uso de Redux o cualquier otra herramienta de administración de estado.

EDIT2: Aquí hay un código de trabajo Sandbox: https://codesandbox.io/s/vibrant-visvesvaraya-36fmy?file=/src/App.js

EDIT3: Nunca, quiero decir NUNCA use jQuery con React ... jQuery es un manipulador DOM, exactamente como React. Pero React es más rápido y mejor. Nunca uses jQuery con React

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