感谢您为此所做的工作,看起来确实令人印象深刻🎉
如果您愿意在此库中添加Windowscroller功能,或者由于性能原因而超出此库的范围,我很感兴趣。
目前,在我们的应用程序中,我们使用了react-virtualized,但是切换到性能更高的替代方案总是很棒的。 如果有时间,我有兴趣为Windowscroller功能的实现提供帮助。
WindowScroller
是那些痛苦的组件维护之一。 我知道它的用处,但是我不确定我是否有兴趣维护另一个。 相反,如果可能的话,我宁愿构建一个外部组件(并单独发布),该组件在react-window之上实现该功能。
我可能愿意对响应窗口进行一些更改以支持此类组件(如果存在),具体取决于它们的复杂程度。
也许一个好的开始是一个人(您?)提交一个PR,将其直接添加到该库中-这样我们就可以看出分别发布会变得多么复杂。
如果您确实需要窗口滚动器,则可以使用react-virtalized中的一个。
WindowScroller
https://codesandbox.io/s/vy620pkzzy
具有动态内容的WindowScroller
https://codesandbox.io/s/xvl23p7okp
我想暂时不解决此问题,因为我不打算对此采取任何行动,而且长期计划(至少在我看来)是一个单独的模块。 不过,我仍然很乐意看一下提案!
Hu @PascalSenn ,您是否正在使用成功实现了响应式虚拟化的WindowScroller? 提前致谢
再次问好@PascalSenn ,我正在尝试使用网格的方法,但是它不适用于我。 你能帮我吗?
提前致谢
@carlosagsmendes
要解决您的问题,您必须使用doc,这解释了Grid的原因,您必须提供除Lists之外的另一个param签名。
scrollTo({scrollLeft: number, scrollTop: number})
=> https://react-window.now.sh/#/api/FixedSizeGrid
希望这会有所帮助...
注意:注意@PascalSenn的CSS技巧
// This height will override the window.innerHeight set in JSX : height={window.innerHeight}
.window-scroller-override {
height: 100% !important;
}
为了提供帮助,这里有一个使用Grid的示例: https :
如果您确实需要窗口滚动器,则可以使用react-virtalized中的一个。
WindowScroller
https://codesandbox.io/s/vy620pkzzy具有动态内容的WindowScroller
https://codesandbox.io/s/xvl23p7okp
仅供参考,考虑这些示例的任何人,请注意,使用window.innerWidth
和window.innerHeight
不能说明滚动条的存在。 需要扣除滚动条的大小,该大小随浏览器/设备的不同(以及这些内容是否足以显示它们)而有所不同。
@bvaughn ,我们可以控制滚动速度吗?非常需要虚拟列表,以防止滑动太快以及没有元素的渲染
@kgregory ,您知道这如何与InfiniteLoader
吗? 在您提供的示例中, WindowScroller
的onScroll
使用在外部范围中创建的引用并应用于List
,但是如果使用InfiniteLoader
,则InfiniteLoader
子回调从其参数获取ref
并将_that_应用于List
。 似乎无法为两个需求使用相同的ref。 到目前为止,我尝试过的所有方法均无效。
@mrdanimal看到此答案以引用列表引用以及来自InfiniteLoader的引用: https :
它似乎不适用于DynamicSizeList。 有人知道解决方法吗? 这将为我省去很多麻烦
最有用的评论
如果您确实需要窗口滚动器,则可以使用react-virtalized中的一个。
WindowScroller
https://codesandbox.io/s/vy620pkzzy
具有动态内容的WindowScroller
https://codesandbox.io/s/xvl23p7okp