设置后取消设置 scrollToIndex

unset scrollToIndex after setting it

我正在使用 InfiniteLoaderTable,并且我有一些条目的索引,这些条目与存储在状态中的特定条件相匹配。如果用户想要浏览这些条目,我将不得不向下传递到 Table 每个索引(单击按钮后)并在 scrollToIndex 中使用它。然而,在它被传递下来之后,我将不得不再次使它成为 null,否则如果用户要滚动 up/down 和 Table,他总是会结束到 Table 指定的相同索引=13=] 而不是当前滚动位置。

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

希望我的问题很清楚。

Table(以及GridList)也有public方法来设置一次滚动索引。对于 Table,方法是 scrollToRow,您只需将要滚动到的索引传递给它即可。也许这样更合您的口味?

编辑:回答后续问题如果您还需要将其传递给InfiniteLoader,您如何获取对Table的引用:

<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>