2017-01-27 20 views
9

Sonsuz bir kaydırma listesi nasıl oluşturabilirim ama bir pencere kaydırıcısında? (Facebook zaman çizgisi ile aynı - Mock up)?InfiniteLoader'ı WindowScroller ile birleştirmek nasıl mümkündür?

Denediğim kod aşağıdadır, ancak beklendiği gibi çalışmaz. Sadece ilk öğeleri gösterir ve bundan sonra daha fazlasını göstermez.

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

Şimdiden çok teşekkürler.

Güncelleme İşte

URL demo şudur: https://plnkr.co/edit/akyEpZ0cXhfs2jtZgQmN

+1

A Pnlkr yararlı olacağını neler olduğunu gösteren. – brianvaughn

+0

@brianvaughn Plunker hakkında bir örnek vermeyi başardım. Teşekkürler! –

cevap

8

your Plnkr dayanarak, burada nasıl çalışır gösteren bir corrected Plnkr bu. (. Sen çocuk List için WindowScroller den scrollTop param geçmesine unutuyorlardı) İşte

gitmek:

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

Yükseklik önceden bilinmese de - FB haber akışı gibi? – Polyakoff

+0

Use CellMeasurer (https://github.com/bvaughn/react-virtualized/blob/master/docs/CellMeasurer.md). Dokümanlarda oldukça belirgin bir şekilde bahsediliyor. Onları kontrol et. – brianvaughn

İlgili konular