Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在react虚拟化表(多重网格)上手动设置滚动量_Javascript_Reactjs_Scroll_Infinite Scroll_React Virtualized - Fatal编程技术网

Javascript 在react虚拟化表(多重网格)上手动设置滚动量

Javascript 在react虚拟化表(多重网格)上手动设置滚动量,javascript,reactjs,scroll,infinite-scroll,react-virtualized,Javascript,Reactjs,Scroll,Infinite Scroll,React Virtualized,我们在应用程序中使用react虚拟化表。这是一个多重网格。假设该表有10000行,并且该表当前滚动到第5000行。我们想要的是,通过单击按钮,表格应跳转到第一行(滚动量应为0) 有一些现有的道具,如scrollToRow或scrollToPosition或scrollToCell的Grid,但它们可以帮助您向下滚动,例如,您位于1.row,使用它们可以将滚动量设置为指定值,并跳到例如100.row。但是你不能后退,我的意思是当我们现在在200的时候滚动到第一行 我找到了一个临时工。通过呼叫解决方

我们在应用程序中使用react虚拟化表。这是一个多重网格。假设该表有10000行,并且该表当前滚动到第5000行。我们想要的是,通过单击按钮,表格应跳转到第一行(滚动量应为0)

有一些现有的道具,如scrollToRowscrollToPositionscrollToCellGrid,但它们可以帮助您向下滚动,例如,您位于1.row,使用它们可以将滚动量设置为指定值,并跳到例如100.row。但是你不能后退,我的意思是当我们现在在200的时候滚动到第一行

我找到了一个临时工。通过呼叫解决方案:

scrollToTop = () => {
    setTimeout(function() {
        this.bodyGrid.bottomRightGrid.handleScrollEvent({scrollTop: 0});
    }, 100);
}
但它只有在使用setTimeout调用时才起作用,而setTimeout似乎不太好

我找不到任何其他方法来手动更改滚动量。我的场景是,用户获取1000行并向下滚动到800.row。然后用户单击一个按钮,它将获取一些完全不同的新的100行。例如,当表被重新呈现(数据源被更新)时,即使整个数据源被替换为一个新的数据源,它仍然会在旧位置滚动。我希望滚动位置转到开始,第一行。但是这个表记住了800行的旧滚动位置,但是目前我们只有100行,所以它滚动一个非常越界的位置并指向错误的位置