第二次使用 `scrollToIndex` 跳回索引
Jump back to index using `scrollToIndex` a second time
(此问题与 react-virtualized 库有关)
我有一个组件使用 <List>
来显示多个项目类别。结果输出类似于:
Jump to: Planets, Nebulae
PLANETS
- Mercury
- Venus
- Jupiter
- ...
NEBULAE
- Horsehead
- Ant
- Boomerang
- ...
我想使用 "Jump to" link 滚动到列表中相应部分的开头。如果我滚动一些内容,我希望随后点击跳转 link 将我带回该部分。
我第一次点击 "Nebulae" link 它工作正常,但在随后的点击中没有任何反应。我认为这是因为 scrollToIndex
是一个道具,在第一次点击后不会改变。我试过使用 forceUpdateGrid
但它似乎没有重置滚动位置。
有没有办法连续多次跳转到同一个索引?
不幸的是,这是道具方法的局限性。 (react-virtualized 仅在检测到 new 道具时手动滚动。否则,一旦设置了初始道具,用户将无法使用鼠标滚动。)
解决此问题的一种方法是在设置后取消设置 scrollToIndex
属性(这样,如果您随后重置它,它仍将是一个新值)。暂时取消设置(也就是将其重置为 undefined
)也不会对列表产生影响,因此您应该没问题。
(此问题与 react-virtualized 库有关)
我有一个组件使用 <List>
来显示多个项目类别。结果输出类似于:
Jump to: Planets, Nebulae
PLANETS
- Mercury
- Venus
- Jupiter
- ...
NEBULAE
- Horsehead
- Ant
- Boomerang
- ...
我想使用 "Jump to" link 滚动到列表中相应部分的开头。如果我滚动一些内容,我希望随后点击跳转 link 将我带回该部分。
我第一次点击 "Nebulae" link 它工作正常,但在随后的点击中没有任何反应。我认为这是因为 scrollToIndex
是一个道具,在第一次点击后不会改变。我试过使用 forceUpdateGrid
但它似乎没有重置滚动位置。
有没有办法连续多次跳转到同一个索引?
不幸的是,这是道具方法的局限性。 (react-virtualized 仅在检测到 new 道具时手动滚动。否则,一旦设置了初始道具,用户将无法使用鼠标滚动。)
解决此问题的一种方法是在设置后取消设置 scrollToIndex
属性(这样,如果您随后重置它,它仍将是一个新值)。暂时取消设置(也就是将其重置为 undefined
)也不会对列表产生影响,因此您应该没问题。