0

我有一个从 React Virtualized 构建的无限滚动组件InfiniteLoader我有一个由 React Virtualized和Grid组件。如果我使用鼠标滚轮向下滚动(即相当缓慢),一切都会很好。但是,当我单击组件内的滚动条并将其向下拖动(移动得更快)时,我从未将其拖到底部。相反,在向下滚动一定百分比后,滚动条突然跳回顶部。

我尝试在 中添加console.log语句Grid,但它们所显示的只是event.target.scrollTop从一个非常高的时刻到0下一个时刻。我不明白的是为什么event.target.scrollTop突然变成0当我在浏览器中所做的所有事情都是向下移动鼠标(同时按住左键)时

有谁知道我该如何解决,甚至只是调试这个问题?

4

1 回答 1

0

这原来是用户错误。

两者都InfiniteLoaderGrid一个rowCount道具,但两者的价值观截然不同。 InfiniteLoader期望 a rowCountof numItems,但Grid需要 a rowCountof Math.ceil(numItems/columnCount)。我通过使用两者的版本“修复”了一个单独的问题InfiniteLoader,但我真正需要做的是为它们传递不同的值。

一旦我弄清楚了这一点并将两者设置为单独的值,奇怪的滚动重置就消失了。尽管通过 React Virtualized 源代码倾注了相当长的一段时间,但我仍然无法弄清楚它在哪里导致一个目标为 ascrollTop0事件在超过时发生rowCount。那好吧。

于 2017-02-15T23:09:43.370 回答