こんにちは、
この素晴らしいライブラリをありがとう。
FixedSizeList の使用中に行コンポーネントが重い場合に問題が発生します。 トラックパッドを使用して非常に高速にスクロールすると、空白が発生します。
この問題を説明するためにデモを掲載しました (実際のカードはデモで使用されているものよりもはるかに重い) - https://codesandbox.io/s/n746q40970 / https://n746q40970.codesandbox.io/
1 行内に 8 つのマテリアル UI カードをレンダリングしていて、スクロール中に空白が表示されますが、1 または 2 枚のカードを使用すると、これらの空白が表示されません。
このシナリオを処理する方法を理解するのを手伝ってもらえますか?
ありがとう
アシッシュ
スクロールが最初に開始されるときのこのタイプの空白は、残念ながら、このライブラリで使用されるウィンドウ テクニックで必要なトレードオフになります。 スクロール ハンドラーを強制的に同期させない限り (ユーザーにとってスクロールが遅くてぎこちない感じになるだけです)、これを完全に回避することはできません。
できること:
overscanRowCount
値を試してください。 (あなたの場合、2 は 1 に対してより適切に機能しますか?@bvaughn - @ashishgupta1989とscrollSyncフラグを設定して、同じ動作を取得できるようにしたいと思います。
したがって、これは機能します:
return createElement(outerElementType || outerTagName || 'div', {
...
onWheel: function (e) {
e.preventDefault()
e.currentTarget.scrollTop += e.deltaY
},
このスタック オーバーフローの回答に触発されました: https://stackoverflow.com/questions/12747746/how-to-disable-smooth-scrolling-in-chrome
この修正をフックする新しいプロペラscrollSyncを使用してプル リクエストを送信した場合、それを受け入れますか?
検討のためにプル リクエストをいつでも歓迎します。 スクロール イベント ハンドラーを強制的にブロックすることは、おそらく API にサポートを追加したくないものであることは認めますが、PR を読んで検討します。
最も参考になるコメント
スクロールが最初に開始されるときのこのタイプの空白は、残念ながら、このライブラリで使用されるウィンドウ テクニックで必要なトレードオフになります。 スクロール ハンドラーを強制的に同期させない限り (ユーザーにとってスクロールが遅くてぎこちない感じになるだけです)、これを完全に回避することはできません。
できること:
overscanRowCount
値を試してください。 (あなたの場合、2 は 1 に対してより適切に機能しますか?