如何将InfiniteLoader与WindowScroller结合起来?

Con*_*eva 11 react-virtualized

如何在窗口滚动条中创建无限滚动列表?(与Facebook时间线相同 - 模拟)?

下面是我尝试过的代码,但它没有按预期工作.它只显示第一个项目,之后不显示任何内容.

<div className={styles.WindowScrollerWrapper}>
    <InfiniteLoader
      isRowLoaded={this._isRowLoaded}
      loadMoreRows={this._loadMoreRows}
      rowCount={list.size}
      threshold={10}>
      {({ onRowsRendered, registerChild }) => (
        <WindowScroller>
          {({ height, isScrolling, scrollTop }) => (
            <AutoSizer disableHeight>
              {({ width }) => (

                <List
                  ref={registerChild}
                  className={styles.List}
                  autoHeight
                  height={height}
                  width={width}
                  onRowsRendered={onRowsRendered}
                  rowCount={list.size}
                  rowHeight={30}
                  rowRenderer={this._rowRenderer}
                  scrollToIndex={randomScrollToIndex}
                  />
              )}
            </AutoSizer>
          )}
        </WindowScroller>
      )}
    </InfiniteLoader>
</div>
Run Code Online (Sandbox Code Playgroud)

提前谢谢了.

更新

以下是演示的URL:https://plnkr.co/edit/akyEpZ0cXhfs2jtZgQmN

bva*_*ghn 14

基于你的Plnkr,这是一个更正的Plnkr,它显示了它应该如何工作.(你忘了将这个scrollTop参数WindowScroller传给了孩子List.)

干得好:

    <InfiniteLoader
      isRowLoaded={this._isRowLoaded}
      loadMoreRows={this._loadMoreRows}
      rowCount={list.size}
      threshold={10}>
      {({ onRowsRendered, registerChild }) => (
        <WindowScroller>
          {({ height, isScrolling, scrollTop }) => (
            <AutoSizer disableHeight>
              {({ width }) => (
                <List
                  ref={registerChild}
                  className="List"
                  autoHeight
                  height={height}
                  width={width}
                  onRowsRendered={onRowsRendered}
                  rowCount={list.size}
                  rowHeight={30}
                  rowRenderer={this._rowRenderer}
                  scrollTop={scrollTop} />
              )}
            </AutoSizer>
          )}
        </WindowScroller>
      )}
    </InfiniteLoader>
Run Code Online (Sandbox Code Playgroud)