Highcharts: TypeError: no se puede leer la propiedad 'pos' de undefined

Creado en 15 feb. 2018  ·  18Comentarios  ·  Fuente: highcharts/highcharts

Estoy usando highcharts-ng con highcharts.js
Cada vez que ejecuto el gráfico, aparece este error:

angular.js:13920 TypeError: Cannot read property 'pos' of undefined
    at https://code.highcharts.com/stock/highstock.js:518:422
    at Array.forEach (<anonymous>)
    at a.each (https://code.highcharts.com/stock/highstock.js:27:466)
    at F.<anonymous> (https://code.highcharts.com/stock/highstock.js:518:396)
    at F.a.(anonymous function) [as getPlotLinePath] (https://code.highcharts.com/stock/highstock.js:19:437)
    at a.Tick.renderGridLine (https://code.highcharts.com/stock/highstock.js:113:264)
    at a.Tick.render (https://code.highcharts.com/stock/highstock.js:115:472)
    at F.renderTick (https://code.highcharts.com/stock/highstock.js:159:427)
    at https://code.highcharts.com/stock/highstock.js:160:448
    at Array.forEach (<anonymous>)

¿Algunas ideas?

Bug

Comentario más útil

La próxima versión (7.0.3) está programada para finales de esta semana

Todos 18 comentarios

Hola @ Lir10

¿Podrías contactar con nuestro soporte? Ver: https://www.highcharts.com/support

Usamos problemas de github para informes de errores. En su caso, no estoy seguro de si se trata de un error en Highstock, un gráfico mal configurado o un error en el módulo highcharts-ng.

¿Algunas ideas?

Solo una idea: el error sugiere un problema de garrapatas xAxis / yAxis, por lo que trataría de eliminar las opciones definidas allí y ver si esto resuelve el problema. En caso afirmativo, vuelva a crear el problema en jsfiddle, sin highcharts-ng, para asegurarse de que sea un error en Highstock lib.

Hola @pawelfus ,

Tenías razón: el problema estaba en las garrapatas xAxis

Cerrando el problema

@ Lir10 ¿ Puedo preguntar cuál fue el problema? Tengo el mismo problema y estoy tratando de identificar la causa. ¡Gracias!

@bobheadxi

Sugeriría hacer esto:

¿Algunas ideas?

Solo una idea: el error sugiere un problema de garrapatas xAxis / yAxis, por lo que trataría de eliminar las opciones definidas allí y ver si esto resuelve el problema. En caso afirmativo, vuelva a crear el problema en jsfiddle, sin highcharts-ng, para asegurarse de que sea un error en Highstock lib.

@ Lir10 , ¿podría describir dónde estaba exactamente el problema, si aún lo recuerda? Estoy enfrentando el mismo problema, pero no puedo captar las circunstancias, simplemente sucede al azar, y desafortunadamente la respuesta de @pawelfus no ayuda mucho.

Hola @davletovalmir

Si puede proporcionar una forma estable de recrear el problema, comparta un enlace para la demostración o los archivos necesarios.

@KacperMadej ,

  1. El error se lanza en la función step , dentro de ese bloque:
d.group.animate({
  scaleY: 1
}, G(z(d.options.animation), {
  step: function(a, b) {
    h[f] = v + b.pos * (c.pos - v); /// <-- b is undefined
    d.group.attr(h)
  }
}))
  1. step se llama aquí, como puede observar, con contexto, pero sin a y b args:
animate: function(e, q, b) {
  q = a.animObject(y(q, this.renderer.globalAnimation, !0));
  y(m.hidden, m.msHidden, m.webkitHidden, !1) && (q.duration = 0);
  0 !== q.duration ? (b && (q.complete = b),
    h(this, e, q)) : (this.attr(e, null, b),
  q.step && q.step.call(this)); /// <-- function called without arguments
  return this
}
  1. Esa función animate es parte de SVGElement y se llamó dentro de la función render .
  2. Encontré la manera de reproducir esto, pero es extraño. Ocurre en la recarga en vivo de la aplicación, cuando el gráfico se representa por primera vez y principalmente cuando el foco no está en el navegador.

No tuve tiempo suficiente para examinar ese tema en profundidad. Espero que lo que he encontrado te sea útil.

PD También adjuntamos una captura de pantalla con un error de consola. No estoy seguro de si ayudará mucho, pero quién sabe :)
image

@davletovalmir
Gracias por la información, me basta con recrear el problema.

Aquí hay una solución con corrección de código:
https://jsfiddle.net/BlackLabel/L6x08jeq/1/

Puede aplicar la corrección de código de la demostración en su código (como un módulo, después del archivo principal de Highcharts). Si tiene tiempo, verifique si esto resuelve el error en su aplicación.

Para su información: el código legible por humanos no minimizado para archivos relacionados con Highcharts está disponible mediante el uso de archivos con .src.js , por ejemplo, highcharts.src.js .

Detalles (también conocido como la historia más larga):

cuando el gráfico se representa por primera vez, y principalmente cuando el foco no está en el navegador

Eso es algo para verificar: esto podría estar conectado a una función reciente que evita la animación de tarjetas / ventanas de navegador desenfocadas (porque no hay necesidad de animar cuando nadie está mirando).

Pude obtener el código correspondiente correcto en código no reducido. La clave aquí es utilizar el tipo de serie de columnas.

Demostración: https://jsfiddle.net/BlackLabel/L6x08jeq/
Pasos:

  1. Abrir consola del navegador
  2. El gráfico se abre sin error, mantenga la consola abierta
  3. Presiona el botón Ejecutar y oculta la pestaña
  4. El error se mostrará en la consola después de que se renderice el gráfico.

_Nota interna:_
H.pick((fx && fx.pos), 1) lugar de fx.pos parece estar resolviendo el problema, pero se requieren pruebas para confirmar.

@KacperMadej , gracias, eso tiene sentido. Arreglar funciona :)
¿Podría estimar cuándo se lanzará esta solución?

@davletovalmir
La solución estará en PR esta semana y debería lanzarse con la próxima versión de Highcharts.

Mientras tanto:

  • Ahora la solución es agregar el código empaquetado como se ve en la demostración.
  • Después de que se realice la confirmación, la compilación de Highcharts con la corrección será accesible a través del enlace basado en GitHub relacionado con la rama con la corrección.
  • Después de que se acepte PR, se podrá acceder a la compilación de Highcharts con la corrección en la rama maestra en el enlace basado en GitHub: https://github.highcharts.com/highcharts.src.js

El problema se debió a que la función animate no pasaba los argumentos adecuados a step cuando omitió la animación, así que lo arreglé allí.

@KacperMadej ¿cuánto tiempo hasta el próximo lanzamiento? Acabamos de migrar de angular highcharts y nos encantaría instalar la versión con la solución antes de fusionar nuestra rama de funciones, en lugar de comenzar con un código adicional para corregir un error, que ya no estará allí en unos días.

La próxima versión (7.0.3) está programada para finales de esta semana

¿Existe una ETA actualizada?

Las pruebas de regresión están en curso. Una vez que se resuelvan todos los problemas, se lanzará una nueva versión; esperaría un nuevo lanzamiento pronto, unos días como máximo.

Se lanza ahora @yhoiseth

¡Dulce! Gracias por avisarme 🙂

Por alguna razón, GitHub no me notificó, aunque estoy "viendo lanzamientos" para este repositorio 🤔

No sé por qué no recibió la notificación, pero aún así, puede registrarse en nuestra lista de correo: https://www.highcharts.com/blog/download/

¿Fue útil esta página
0 / 5 - 0 calificaciones