2017-05-05 70 views
1

我試圖使用react-virtualizeInfiniteLoader顯示一個頂部輸入字段(用於過濾列表條目)的可滾動列表。什麼是正確的方式來重置/初始化InfiniteLoader

我使用的代碼非常接近InfiniteLoader Sample Code。 該清單工作正常,但我不知道如何更改/初始化InfiniteLoadersearchText更改和(完全)新數據應顯示。

流程是這樣的:打開首次

  1. 列表,顯示了從redux store(正常工作)的數據。
  2. 用戶改變textSearch和新的數據提取到store
  3. 在這一點上,InfiniteLoader應進行初始化(我試過InfiniteLoader調用resetLoadMoreRowsCache
  4. InfiniteLoader應該叫loadMoreRows像第一次和重新呈現與新的數據

我見過的INFINITELOADER DEMO具有相同的行爲:通過點擊「刷新緩存數據」什麼也沒有發生,直到我開始scolling列表。

所以我的問題:什麼是正確的方式來重置/初始化?

回答

0

InfiniteLoader對渲染的行範圍有反應。 resetLoadMoreRowsCache method只是重置緩存的數據。它不會自動請求加載一批行。

可以說它應該。我不知道。如果應用程序狀態發生變化,需要調用resetLoadMoreRowsCache,用戶代碼似乎很容易自動加載第一批新數據。

無論如何,文藝青年最愛的是,你應該能夠做到這一點:

infiniteLoaderRef.resetLoadMoreRowsCache(); // Reset the cache 

loadMoreRows({ // Manually kick off the first batch 
    startIndex: 0, 
    stopIndex: 20 // Or whatever 
}); 

快樂審查公關如果你覺得還可以提高,以改變默認的行爲。

+0

感謝您的澄清(也爲這個偉大的圖書館!)。你的建議加上對'recomputeRowHeights' - 'List'方法的調用完成了。再次感謝 – PeteMeier

相關問題