Barista: [Graphique] Problèmes de défilement avec les données en direct

Créé le 6 août 2020  ·  4Commentaires  ·  Source: dynatrace-oss/barista

Rapport d'erreur

Comportement attendu

Le défilement ne doit pas être influencé par le graphique en direct.

Comportement actuel

Le graphique à barres avec des données en direct crée des problèmes de défilement.

Étapes pour reproduire

Versions utilisées :

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

Pièces jointes

scroll-bug

P4 bug needs discussion

Commentaire le plus utile

@lukasholzer J'aimerais aider à corriger le bogue, mais ma connaissance de la base de code barista et des highcharts est assez limitée. De plus, la session de programmation en binôme me semble bien. Discutons peut-être d'un moment pour Slack.

Tous les 4 commentaires

Ceci est probablement à nouveau lié aux choses décrites dans #1410.

Lorsque les données de la série sont définies, la fonction de mise à jour des graphiques est appelée :
https://github.com/dynatrace-oss/barista/blob/24647e8c15b388cd128ba102fe9f6cf1ffbb4620/libs/barista-components/chart/src/chart.ts#L232 -L236

Dans cette fonction de mise à jour, nous devons détruire l'objet graphique actuel et le réinstancier à nouveau. Highcharts a une fonction de mise à jour, bien que cela ne permette pas au consommateur de mettre à jour toutes les propriétés de la série ou des options de graphique. Cela a conduit à des problèmes dans le passé, c'est pourquoi nous avons implémenté la fonctionnalité de ré-instanciation dans 6df1df81f9f935e6185505757893b4a4ba965099.

Avant le changement, la fonction de mise à jour ressemblait à ceci, où les nouvelles séries et options étaient transmises à la fonction Highcharts.update .
https://github.com/dynatrace-oss/barista/blob/dd7fa6f35daa06593081a9700c74fe50757f77ef/src/lib/chart/chart.ts#L543 -L553

Pendant une brève période de temps au cours de sa reconstruction, l'élément du graphique aura une hauteur de 0, ce qui provoque le défilement.
@TannerGilbert comme solution de contournement, cela peut être contourné en définissant une hauteur sur le conteneur ou le graphique lui-même pour empêcher la refusion :
https://stackblitz.com/edit/scroll-bug-mvactj?file=src%2Fapp%2Fapp.component.scss

@ffriedl89 @lukasholzer Une solution à ce problème serait de lire la hauteur actuelle du graphique dans la méthode de mise à jour et de la définir sur l'élément hôte, puis de la supprimer à nouveau après la mise à jour. Mais je crains que cela ne provoque des effets secondaires. Qu'en penses-tu?

Oui, en ce qui concerne les effets secondaires, je ne suis pas sûr car nous vérifions toujours le this._chart._afterRender par exemple dans la zone de sélection (Ce sujet devrait être déclenché) après avoir réinitialisé la hauteur.

Je pense que la meilleure approche serait de le tester pour avoir un aperçu de la façon dont il s'améliore.

@TannerGilbert , voulez-vous contribuer à ce correctif pour la bibliothèque ? Bien sûr, nous pouvons vous aider même avec une session de programmation en binôme.

@lukasholzer J'aimerais aider à corriger le bogue, mais ma connaissance de la base de code barista et des highcharts est assez limitée. De plus, la session de programmation en binôme me semble bien. Discutons peut-être d'un moment pour Slack.

Déplacé vers le suivi des problèmes internes

Cette page vous a été utile?
0 / 5 - 0 notes