我们在我们的应用程序中使用反应虚拟化表。它是一个多重网格。假设该表有 10000 行,并且该表当前滚动到第 5000 行。我们想要的,通过点击一个按钮,表格应该跳转到第一行(滚动量应该是0)
有现有的道具,例如scrollToRow或Grid的scrollToPosition或scrollToCell函数,但它们可以帮助您向下滚动,例如您在 1.row 并使用它们可以将滚动量设置为指定值并跳转到例如 100 。排。但是你不能倒退,我的意思是当前我们在 200 时滚动到第一行。
我找到了一个温度。通过调用解决方案:
scrollToTop = () => {
setTimeout(function() {
this.bodyGrid.bottomRightGrid.handleScrollEvent({scrollTop: 0});
}, 100);
}
但它仅在使用似乎不太好的 setTimeout 调用时才有效。
我找不到任何其他方法来手动更改滚动量。我的场景是,用户获取 1000 行并向下滚动到 800.row。然后用户单击一个按钮,它会获取一些完全不同的新 100 行,例如,当重新渲染表(更新数据源)时,它仍然会在旧位置滚动,即使整个数据源被替换为新位置。我希望滚动位置开始,第一行。但是该表记住了 800 行的旧滚动位置,但目前我们只有 100 行,因此它滚动了一个非常超出界限的位置并指向错误的位置。