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?
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 ,
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)
}
}))
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
}
animate
es parte de SVGElement
y se llamó dentro de la función render
.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 :)
@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
.
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:
_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:
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/
Comentario más útil
La próxima versión (7.0.3) está programada para finales de esta semana