Estou usando highcharts-ng com highcharts.js
Sempre que eu inicio o gráfico, recebo este erro:
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>)
Alguma ideia?
Olá @ Lir10
Você poderia entrar em contato com nosso suporte? Veja: https://www.highcharts.com/support
Usamos problemas do github para relatórios de bug. No seu caso, não tenho certeza se isso é um bug no Highstock, gráfico mal configurado ou um bug no módulo highcharts-ng.
Alguma ideia?
Apenas uma ideia: o erro sugere um problema de tique xAxis / yAxis, então eu tentaria remover as opções definidas lá e ver se isso resolve o problema. Se sim, então recrie o problema no jsfiddle, sem highcharts-ng para ter certeza de que é um bug no Highstock lib.
Olá @pawelfus ,
Você estava certo - o problema estava nos carrapatos xAxis
Fechando o problema
@ Lir10 Posso perguntar qual era o problema? Eu tenho o mesmo problema e estou tentando localizar a causa. Obrigado!
@bobheadxi
Eu sugeriria fazer isso:
Alguma ideia?
Apenas uma ideia: o erro sugere um problema de tique xAxis / yAxis, então eu tentaria remover as opções definidas lá e ver se isso resolve o problema. Se sim, então recrie o problema no jsfiddle, sem highcharts-ng para ter certeza de que é um bug no Highstock lib.
@ Lir10 , poderia descrever onde estava exatamente o problema, se ainda se lembra? Estou enfrentando o mesmo problema, mas não consigo entender as circunstâncias, simplesmente acontece aleatoriamente e, infelizmente, a resposta de @pawelfus não ajuda muito.
Olá @davletovalmir
Se você for capaz de fornecer uma maneira estável de recriar o problema, compartilhe um link para a demonstração ou os arquivos necessários.
@KacperMadej , ainda não consegui encontrar a causa raiz, mas aqui está o que descobri (lamento antecipadamente por alguns trechos de código ofuscado abaixo):
step
, dentro desse bloco: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
é chamada aqui, como você pode notar, com contexto, mas sem a
e 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
faz parte de SVGElement
e foi chamada dentro da função render
.Não tive tempo suficiente para inspecionar esse problema em profundidade. Espero que o que encontrei seja útil para você.
PS Também anexando parte da captura de tela com erro do console. Não tenho certeza se vai ajudar muito, mas quem sabe :)
@davletovalmir
Obrigado pela informação - é o suficiente para mim recriar o problema.
Aqui está uma solução alternativa com correção de código:
https://jsfiddle.net/BlackLabel/L6x08jeq/1/
Você pode aplicar a correção do código da demonstração em seu código (como um módulo - após o arquivo Highcharts principal). Se você tiver tempo, verifique se isso resolve o erro em seu aplicativo.
Para sua informação: código legível não reduzido para arquivos relacionados a Highcharts está disponível usando arquivos com .src.js
- por exemplo, highcharts.src.js
.
quando o gráfico é renderizado pela primeira vez, e principalmente quando o foco não está no navegador
Isso é algo a verificar - pode estar conectado a um recurso recente que impede a animação de janelas / cartões do navegador desfocados (porque não há necessidade de animar quando ninguém está assistindo).
Consegui obter o código correspondente correto em código não reduzido. A chave aqui é usar o tipo de série da coluna.
Demonstração: https://jsfiddle.net/BlackLabel/L6x08jeq/
Passos:
_Nota interna: _
H.pick((fx && fx.pos), 1)
vez de fx.pos
parece estar resolvendo o problema, mas é necessário testar para confirmar.
@KacperMadej , obrigado, isso faz sentido. A correção funciona :)
Você poderia estimar quando essa correção será lançada?
@davletovalmir
A correção estará no PR esta semana e deve ser lançada com a próxima versão do Highcharts.
Enquanto isso:
O problema era causado pela função animate
não passando os argumentos apropriados para step
ao ignorar a animação, então, em vez disso, corrigi-lo.
@KacperMadej quanto tempo até o próximo lançamento? Acabamos de migrar dos highcharts angulares e adoraríamos instalar a versão com a correção antes de mesclar nosso branch de recursos, em vez de começar com código adicional para corrigir um bug, que não estará mais lá em alguns dias.
A próxima versão (7.0.3) está prevista para o final desta semana
Existe um ETA atualizado?
Testes de regressão estão em andamento. Assim que todos os problemas forem resolvidos, uma nova versão será lançada - espero um novo lançamento em breve, alguns dias no máximo.
É lançado agora @yhoiseth
Doce! Obrigado por me avisar 🙂
Por algum motivo, o GitHub não me notificou, embora eu esteja "observando os lançamentos" deste repositório 🤔
Não sei por que você não recebeu a notificação, mas ainda assim, você pode se inscrever em nossa lista de e-mails: https://www.highcharts.com/blog/download/
Comentários muito úteis
A próxima versão (7.0.3) está prevista para o final desta semana