Barista: [Gráfico] Problemas de rolagem com dados ativos

Criado em 6 ago. 2020  ·  4Comentários  ·  Fonte: dynatrace-oss/barista

Relatório de erro

Comportamento esperado

A rolagem não deve ser influenciada pelo gráfico ao vivo.

Comportamento Atual

O gráfico de barras com dados ativos cria problemas de rolagem.

Passos para reproduzir

Versões usadas:

  • datilografado : 3.8.3
  • @ angular / cdk : 9.2.4
  • @ dynatrace / barista-components : 7.6.0

Anexos

scroll-bug

P4 bug needs discussion

Comentários muito úteis

@lukasholzer Eu gostaria de ajudar a consertar o bug, mas meu conhecimento sobre a base de código e os

Todos 4 comentários

Isso provavelmente está novamente relacionado às coisas descritas em # 1410.

Quando os dados da série estão sendo configurados, a função de atualização de gráficos é chamada:
https://github.com/dynatrace-oss/barista/blob/24647e8c15b388cd128ba102fe9f6cf1ffbb4620/libs/barista-components/chart/src/chart.ts#L232 -L236

Nesta função de atualização, precisamos destruir o objeto gráfico atual e restabelecê-lo novamente. Highcharts tem uma função de atualização, embora isso não permita que o consumidor atualize todas as propriedades da série ou opções de gráfico. Isso tem causado problemas no passado, e é por isso que implementamos a funcionalidade de reinstanciação em 6df1df81f9f935e6185505757893b4a4ba965099.

Antes da mudança, a função de atualização se parecia com isto, onde a nova série e opções eram passadas para a função Highcharts.update .
https://github.com/dynatrace-oss/barista/blob/dd7fa6f35daa06593081a9700c74fe50757f77ef/src/lib/chart/chart.ts#L543 -L553

Por um breve período de tempo durante sua reconstrução, o elemento do gráfico terá uma altura de 0, o que causa a nova rolagem.
@TannerGilbert como uma solução alternativa, isso pode ser contornado definindo uma altura no contêiner ou no próprio gráfico para evitar o refluxo:
https://stackblitz.com/edit/scroll-bug-mvactj?file=src%2Fapp%2Fapp.component.scss

@ ffriedl89 @lukasholzer Uma solução para este problema seria ler a altura atual do gráfico no método de atualização e configurá-lo no elemento host e removê-lo novamente após a atualização. Mas temo que isso possa causar alguns efeitos colaterais. O que você acha?

Sim, em relação aos efeitos colaterais, não tenho certeza, pois sempre verificamos this._chart._afterRender por exemplo na área de seleção (Este assunto deve ser acionado) após redefinir a altura.

Acho que a melhor abordagem seria testá-lo para obter insights sobre como ele melhora.

@TannerGilbert você deseja contribuir com esta correção para a biblioteca? Com certeza podemos ajudá-lo mesmo com uma sessão de programação em pares.

@lukasholzer Eu gostaria de ajudar a consertar o bug, mas meu conhecimento sobre a base de código e os

Movido para rastreamento de problemas internos

Esta página foi útil?
0 / 5 - 0 avaliações