【发布时间】:2017-03-24 23:22:18
【问题描述】:
我在构建无限滚动列表时遇到了问题。我需要保持滚动位置,但在底部呈现更多行。 react-virtualized 提供 scrollTo 但这似乎还不够,因为我们没有当前的 scrolledTo 索引。使用clientHeight、scrollHeight 和scrollTop 动态计算scrollTo 索引只能提供近似值,尤其是当行具有动态高度时。
有什么建议吗?
【问题讨论】:
我在构建无限滚动列表时遇到了问题。我需要保持滚动位置,但在底部呈现更多行。 react-virtualized 提供 scrollTo 但这似乎还不够,因为我们没有当前的 scrolledTo 索引。使用clientHeight、scrollHeight 和scrollTop 动态计算scrollTo 索引只能提供近似值,尤其是当行具有动态高度时。
有什么建议吗?
【问题讨论】:
我需要保持滚动位置,但在底部渲染更多行。
在末尾/底部添加更多行不会影响滚动位置。
react-virtualized 提供了 scrollTo 但这似乎还不够,因为我们没有当前的 scrolledTo 索引。
你将 scroll-to 属性传递给 react-virtualized 所以你必须拥有它。不过,如果您想在用户启动的滚动更改时收到通知,可以使用 onScroll 或 onRowsRendered 回调。
【讨论】:
onScroll 来捕获事件,但似乎不可能在底部添加行、从顶部删除行并保持用户视图不变。我忽略了什么吗?
scrollToAlignment 和 scrollToIndex 的组合可能会起作用。
List 的位置缓存失效——在这种情况下,它仍然会影响您的滚动位置。这可能是那些不看代码和演示就很难回答的问题之一。