【问题标题】:unset scrollToIndex after setting it设置后取消设置 scrollToIndex
【发布时间】:2017-03-01 12:01:45
【问题描述】:

我正在使用InfiniteLoaderTable,并且我有一些符合存储在状态中的特定条件的条目的索引。如果用户想要浏览这些条目,我必须将每个索引(单击按钮后)传递给Table 并在scrollToIndex 中使用它。但是,在它传递下来之后,我必须再次将其设为null,否则如果用户向上/向下滚动Table,他将始终以scrollToIndex 指定的相同索引结束,而不是当前滚动位置。

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

希望我的问题很清楚。

【问题讨论】:

    标签: react-virtualized


    【解决方案1】:

    Table(以及GridList)也有设置1 次滚动索引的公共方法。对于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>
    

    【讨论】:

    • 如果我必须将InfiniteLoaderregisterChild 作为ref 传递,我如何获得对Table 的引用以便调用scrollToRow
    • 你可以堆叠引用。我已经更新了我的答案来说明这一点。
    猜你喜欢
    • 2011-09-27
    • 1970-01-01
    • 2014-04-22
    • 2011-01-03
    • 2016-04-29
    • 2014-03-25
    • 2017-01-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多