diff --git a/packages/virtualized-lists/Lists/VirtualizedList.js b/packages/virtualized-lists/Lists/VirtualizedList.js index e91f73cb898..588e3ed9d38 100644 --- a/packages/virtualized-lists/Lists/VirtualizedList.js +++ b/packages/virtualized-lists/Lists/VirtualizedList.js @@ -1181,12 +1181,6 @@ class VirtualizedList extends StateSafePureComponent { if (hiPriInProgress) { this._hiPriInProgress = false; } - - // We only call `onEndReached` after we render the last cell, but when - // getItemLayout is present, we can scroll past the last rendered cell, and - // never trigger a new layout or bounds change, so we need to check again - // after rendering more cells. - this._maybeCallOnEdgeReached(); } _cellRefs: {[string]: null | CellRenderer} = {}; @@ -1497,20 +1491,11 @@ class VirtualizedList extends StateSafePureComponent { const { data, getItemCount, - getItemLayout, onStartReached, onStartReachedThreshold, onEndReached, onEndReachedThreshold, } = this.props; - // Wait until we have real metrics - if ( - !this._listMetrics.hasContentLength() || - this._scrollMetrics.visibleLength === 0 - ) { - return; - } - // If we have any pending scroll updates it means that the scroll metrics // are out of date and we should not call any of the edge reached callbacks. if (this.state.pendingScrollUpdateCount > 0) { @@ -1553,9 +1538,6 @@ class VirtualizedList extends StateSafePureComponent { if ( onEndReached && this.state.cellsAroundViewport.last === getItemCount(data) - 1 && - (getItemLayout != null || - this._listMetrics.getHighestMeasuredCellIndex() === - getItemCount(data) - 1) && isWithinEndThreshold && this._listMetrics.getContentLength() !== this._sentEndForContentLength ) { diff --git a/packages/virtualized-lists/Lists/__tests__/VirtualizedList-test.js b/packages/virtualized-lists/Lists/__tests__/VirtualizedList-test.js index 1c7f7f92dc4..78648590d69 100644 --- a/packages/virtualized-lists/Lists/__tests__/VirtualizedList-test.js +++ b/packages/virtualized-lists/Lists/__tests__/VirtualizedList-test.js @@ -663,6 +663,11 @@ describe('VirtualizedList', () => { renderItem: ({item}) => , getItem: (items, index) => items[index], getItemCount: items => items.length, + getItemLayout: (items, index) => ({ + length: ITEM_HEIGHT, + offset: ITEM_HEIGHT * index, + index, + }), onEndReached, }; @@ -689,15 +694,6 @@ describe('VirtualizedList', () => { expect(onEndReached).not.toHaveBeenCalled(); await act(() => { - for (let i = 0; i < 20; ++i) { - simulateCellLayout(component, data, i, { - width: 10, - height: ITEM_HEIGHT, - x: 0, - y: i * ITEM_HEIGHT, - }); - } - instance._onScroll({ timeStamp: 1000, nativeEvent: {