(这个问题与react-虚拟化库有关)
我有一个组件,它使用<List>
来显示几个项目类别。结果输出如下所示:
Jump to: Planets, Nebulae
PLANETS
- Mercury
- Venus
- Jupiter
- ...
NEBULAE
- Horsehead
- Ant
- Boomerang
- ...
我想使用"跳转到"链接滚动到列表中相应部分的开始。如果我滚动了一些,我希望随后的跳转链接点击将我带回到该部分。
我第一次点击"星云"链接,它工作得很好,但在随后的点击中什么也没有发生。我认为这是因为scrollToIndex
是道具,在第一次点击后不会改变。我试过使用forceUpdateGrid
,但它似乎没有重置滚动位置。
是否有一种方法可以在一行中多次跳转到同一索引?
不幸的是,这是props方法的一个限制。(react-virtual仅在检测到新道具时手动滚动。否则,一旦设置了初始道具,用户将无法使用鼠标滚动。)
解决这个问题的一种方法是一旦设置了scrollToIndex
prop就取消设置(这样如果您重新设置它,它仍然是一个新值)。暂时取消设置(也就是将其重置为undefined
)也不会对列表产生影响,所以您应该没问题。