Как можно объединить InfiniteLoader с WindowScroller?
Как я могу создать бесконечный список прокрутки, но в окне скроллер? (так же, как Facebook timeline -макет)?
Ниже приведен код, который я пробовал, но не работает, как ожидалось. Он отображает только первые элементы, и после этого он не отображает ничего более.
<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>
заранее большое спасибо.
обновление
вот URL для демонстрации: https://plnkr.co/edit/akyEpZ0cXhfs2jtZgQmN
1 ответов
на основе ваш Plnkr здесь исправлено Plnkr что показывает, как это должно работать. (Вы забыли передать scrollTop
param из 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>