2017-03-01 57 views
0

我使用InfiniteLoaderTable,我有一些條目的索引與存儲在狀態中的特定條件相匹配。如果用戶想要瀏覽這些條目,那麼我將不得不將每個索引傳遞給Table(點擊按鈕後),並在scrollToIndex中使用它。但是,在它傳遞之後,我將不得不再次將其設置爲null,否則,如果用戶向上/向下滾動Table,他將始終結束與scrollToIndex指定的索引相同的索引,而不是當前的滾動位置。設置後取消設置scrollToIndex

有沒有更好的方法來做到這一點,除了設置兩次狀態,一次使用索引,然後使用null值?

希望我的問題很清楚。

回答

1

Table(和GridList)也具有用於設置1次滾動索引的公共方法。對於Table,該方法是scrollToRow,您只需將它傳遞給要滾動到的索引即可。也許這會更符合你的喜好?

編輯:在回答你如何去Table參考後續的問題,如果你還需要將它傳遞給InfiniteLoader

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

我怎樣才能得到一個參考'表'爲了調用'scrollToRow',如果我必須將'InfiniteLoader'的'registerChild'作爲'ref'來傳遞的話? – XeniaSis

+0

您可以堆疊參考。我已經更新了我的回答來說明這一點。 – brianvaughn

+0

謝謝,效果很好! – XeniaSis