设置后取消设置scrollToIndex

时间:2017-03-01 12:01:45

标签: react-virtualized

我使用带有InfiniteLoader的{​​{1}},并且我的某些条目的索引与状态中存储的特定条件相匹配。如果用户想要浏览这些条目,我将不得不向下传递到Table每个索引(按下按钮后)并在Table中使用它。但是,在它传下来之后,我必须再次使它scrollToIndex,否则如果用户向上/向下滚动null,他将总是以指定的相同索引结束按Table代替当前滚动位置。

除了设置状态两次,一次使用索引然后使用scrollToIndex值之外,还有更好的方法吗?

希望我的问题很明确。

1 个答案:

答案 0 :(得分:2)

Table(以及GridList)也有公共方法来设置一次性滚动索引。对于Table,方法为scrollToRow,您只需将要传输的索引传递给它即可。也许这更符合你的喜好?

修改:如果您还需要将其传递给Table,请回答有关如何获得InfiniteLoader引用的后续问题:

<InfiniteLoader {...infiniteLoaderProps}>
  {({ onRowsRendered, registerChild }) => (
    <Table
      {...tableProps}
      onRowsRendered={onRowsRendered}
      ref={(ref) => {
        this._tableRef = ref     // Store for yourself
        registerChild(ref) // And pass on to InfiniteLoader
      }}
    >
      {/* Columns ... */}
    </Table>
  )}
</InfiniteLoader>