React-window: Windowscroller

创建于 2018-07-27  ·  12评论  ·  资料来源: bvaughn/react-window

感谢您为此所做的工作,看起来确实令人印象深刻🎉

如果您愿意在此库中添加Windowscroller功能,或者由于性能原因而超出此库的范围,我很感兴趣。

目前,在我们的应用程序中,我们使用了react-virtualized,但是切换到性能更高的替代方案总是很棒的。 如果有时间,我有兴趣为Windowscroller功能的实现提供帮助。

👋 help wanted 😎 enhancement

最有用的评论

如果您确实需要窗口滚动器,则可以使用react-virtalized中的一个。

WindowScroller
https://codesandbox.io/s/vy620pkzzy

具有动态内容的WindowScroller
https://codesandbox.io/s/xvl23p7okp

所有12条评论

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.innerWidthwindow.innerHeight不能说明滚动条的存在。 需要扣除滚动条的大小,该大小随浏览器/设备的不同(以及这些内容是否足以显示它们)而有所不同。

@bvaughn ,我们可以控制滚动速度吗?非常需要虚拟列表,以防止滑动太快以及没有元素的渲染

@kgregory ,您知道这如何与InfiniteLoader吗? 在您提供的示例中, WindowScrolleronScroll使用在外部范围中创建的引用并应用于List ,但是如果使用InfiniteLoader ,则InfiniteLoader子回调从其参数获取ref并将_that_应用于List 。 似乎无法为两个需求使用相同的ref。 到目前为止,我尝试过的所有方法均无效。

@mrdanimal看到此答案以引用列表引用以及来自InfiniteLoader的引用: https :

我能够在@PascalSenn的codesandbox中解决一些问题,但最终自己做了两个来测试一些与我的项目相关的事情。 我将其发布在这里,以防任何人使用。

FixedSizeList示例: https ://codesandbox.io/s/react-window-with-windowscroller-fixedsizelist-xujgi
VariableSizeGrid示例: https :

它似乎不适用于DynamicSizeList。 有人知道解决方法吗? 这将为我省去很多麻烦

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

jlongster picture jlongster  ·  31评论

oriSomething picture oriSomething  ·  13评论

einarq picture einarq  ·  34评论

Rahul-Sagore picture Rahul-Sagore  ·  35评论

wilcoschoneveld picture wilcoschoneveld  ·  12评论