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

170
Visualizações
Reaccionar useState arroja un error en Highcharts mouseOver

Tengo una aplicación de reacción mecanografiada con un gráfico de gráficos altos. Quiero actualizar una etiqueta de "precio" (fuera del carro alto) en función de los datos que obtengo cuando un usuario pasa el mouse sobre una parte del gráfico.

La devolución de llamada mouseOver funciona bien y puedo registrar con éxito los datos que quiero en la consola. Pero cuando trato de actualizar el estado del precio usando el enlace useState para setPrice, aparece un error de highcharts. Si comento la línea setPrice, no hay errores. ¿Alguna idea?

 Uncaught TypeError: Cannot read properties of null (reading 'yAxis') at highstock.src.js:24009 at Array.forEach (<anonymous>) at c.getAnchor (highstock.src.js:23992) at c.refresh (highstock.src.js:24517) at c.runPointActions (highstock.src.js:27941) at c.onContainerMouseMove (highstock.src.js:27502)

Aquí hay un pseudocódigo de cómo lo he implementado:

 const [price, setPrice] = useState<number>(0) options = { ... plotOptions: { series: { point: { events: { mouseOver: function(e:any) { price = // logic to fetch price based on mouse position console.log(price) setPrice(price) } } } } } }

Y el html (componentes con estilo)

 <Price>{ price }</Price>
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Es probable que los datos no estén disponibles de inmediato, por eso devuelve datos nulos. Sin embargo, puede configurar los datos de forma asíncrona usando un retraso setTimeout como este.

 const [price, setPrice] = useState<number>(0) options = { ... plotOptions: { series: { point: { events: { mouseOver: function(e:any) { price = // logic to fetch price based on mouse position console.log(price) setTimeout(() => { // This is where the delay comes in setPrice(price) }, 0) } } } } } }
about 4 years ago · Juan Pablo Isaza Relatório

0

Mi corazonada es que hay un retraso de tiempo para devolverte esos datos. Pruebe async/await y luego vuelva a establecer su estado en esos resultados.

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