Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

163
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!