React Virtualized InfiniteLoader / Grid:如何防止滚动重置?

时间:2017-02-15 21:44:07

标签: react-virtualized

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

我已尝试在console.log中添加Grid个语句,但他们所展示的只是event.target.scrollTop从一个非常高的数字时间到0下一个。我无法弄清楚的是event.target.scrollTop突然变为0的原因,当我在浏览器中完成所有操作时,我的鼠标向下移动(按住左键单击按钮) )。

有没有人知道如何修复,甚至只是调试这个问题?

1 个答案:

答案 0 :(得分:0)

结果是用户错误。

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

一旦我想出这个并将两者设置为单独的值,奇怪的滚动重置就消失了。尽管在很长一段时间内通过React Virtualized源代码,我还是无法弄清楚当scrollTop 0发生rowCount为{{1}}的目标的事件时超过了。哦,好吧。