Barista: [グラフ]ライブデータのスクロールの問題

作成日 2020年08月06日  ·  4コメント  ·  ソース: dynatrace-oss/barista

バグレポート

予想される行動

スクロールはライブグラフの影響を受けないようにする必要があります。

現在の動作

ライブデータを含む棒グラフは、スクロールで問題を引き起こします。

再現する手順

使用バージョン:

  • タイプスクリプト:3.8.3
  • @ angular / cdk :9.2.4
  • @ dynatrace / barista-components :7.6.0

添付ファイル

scroll-bug

P4 bug needs discussion

最も参考になるコメント

@lukasholzerバグの修正を支援したいのですが、バリスタのコードベースとハイチャートに関する知識はかなり限られています。 また、ペアプログラミングセッションは私にはいいですね。 たぶん、Slackでの時間を議論しましょう。

全てのコメント4件

これもおそらく#1410で概説されていることに関連しています。

系列データが設定されているとき、チャート更新関数が呼び出されます。
https://github.com/dynatrace-oss/barista/blob/24647e8c15b388cd128ba102fe9f6cf1ffbb4620/libs/barista-components/chart/src/chart.ts#L232 -L236

この更新関数では、現在のチャートオブジェクトを破棄して、再度インスタンス化する必要があります。 Highchartsには更新機能がありますが、これにより、コンシューマーがシリーズまたはチャートオプションのすべてのプロパティを更新できるわけではありません。 これは過去に問題を引き起こしていました。そのため、6df1df81f9f935e6185505757893b4a4ba965099に再インスタンス化機能を実装しました。

変更前の更新関数は次のようになり、新しいシリーズとオプションがHighcharts.update関数に渡されました。
https://github.com/dynatrace-oss/barista/blob/dd7fa6f35daa06593081a9700c74fe50757f77ef/src/lib/chart/chart.ts#L543 -L553

再構築中の短い期間、チャート要素の高さは0になり、再スクロールが発生します。
回避策としての@TannerGilbert 。これは、リフローを防ぐためにコンテナまたはチャート自体に高さを設定することで回避できます。
https://stackblitz.com/edit/scroll-bug-mvactj?file=src%2Fapp%2Fapp.component.scss

@ ffriedl89 @lukasholzerこの問題の1つの解決策は、updateメソッドでグラフの現在の高さを読み取り、それをホスト要素に設定し、更新後に再度削除することです。 しかし、私はこれがいくつかの副作用を引き起こす可能性があることを恐れています。 どう思いますか?

副作用については、高さをリセットした後、たとえば選択領域(このサブジェクトをトリガーする必要があります)で常にthis._chart._afterRenderをチェックするため、よくわかりません。

最善のアプローチは、それをテストして、それがどのように改善されるかについての洞察を得ることだと思います。

@TannerGilbertこの修正をライブラリに提供しますか? 確かに、ペアプログラミングセッションでもお手伝いできます。

@lukasholzerバグの修正を支援したいのですが、バリスタのコードベースとハイチャートに関する知識はかなり限られています。 また、ペアプログラミングセッションは私にはいいですね。 たぶん、Slackでの時間を議論しましょう。

内部の問題追跡に移動しました

このページは役に立ちましたか?
0 / 5 - 0 評価