【发布时间】:2017-03-13 14:26:04
【问题描述】:
我正在构建一个 React 应用程序,我有多个 Grid 组件,结合 ScrollSync,如下所示:
<ScrollSync>
...
<Grid />
<Grid />
...
</ScrollSync>
看起来像这样:
他们正在正确滚动,一个正在跟随另一个。但是,我需要 GRID 1 始终在 DOM 中完全呈现。
Grid 的 overscanRowCount 选项没有帮助,因为它只给了我 n 行,但只在滚动方向上。
例如,如果我渲染了 10 行,并且我将 overscanRowCount 设置为 6 - 如果我向下滚动,我将有 10 + 底部 6 行,如果我滚动到顶部,我将有 10 + 6 顶部行。
我为什么需要它?我的应用如下所示:
因此,例如,当“prod5”项目离开 DOM 时,那条蓝线也会丢失,每一行都是从行项目到顶部。
对我来说不错的选择是渲染 n 行顶部和底部行,或者简单地 - 全部呈现。任何解决方案或解决方法?我搜索了很多,找不到任何有用的东西。
【问题讨论】:
-
为什么总是需要渲染?你想解决什么问题?
-
我更新了问题。
-
一种可能性:不要对左侧网格使用 react-virtualized 和 implement ScrollSync yourself。
-
另一种可能性:将蓝线渲染为段(每个单元格一个段)并预处理您的数据,使传递给每个单元格的道具包括例如
hasBlueLineSegment财产。 -
你看过
overscanIndicesGetterprop吗?如果您知道单元格的总数,您似乎可以实现一个始终返回{ overscanStartIndex: 0, overscanStopIndex: totalNumberOfCells }的函数。
标签: javascript reactjs react-virtualized