diff --git a/packages/virtualized-lists/Lists/VirtualizedList.js b/packages/virtualized-lists/Lists/VirtualizedList.js index de44f303b07ce9..2aca79a2ea2503 100644 --- a/packages/virtualized-lists/Lists/VirtualizedList.js +++ b/packages/virtualized-lists/Lists/VirtualizedList.js @@ -616,7 +616,7 @@ class VirtualizedList extends StateSafePureComponent { ), }; } else { - // If we have a non-zero initialScrollIndex and run this before we've scrolled, + // If we have a positive non-zero initialScrollIndex and run this before we've scrolled, // we'll wipe out the initialNumToRender rendered elements starting at initialScrollIndex. // So let's wait until we've scrolled the view to the right place. And until then, // we will trust the initialScrollIndex suggestion. @@ -627,7 +627,8 @@ class VirtualizedList extends StateSafePureComponent { // - initialScrollIndex > 0 AND the end of the list is visible (this handles the case // where the list is shorter than the visible area) if ( - props.initialScrollIndex && + props.initialScrollIndex != null && + props.initialScrollIndex > 0 && !this._scrollMetrics.offset && Math.abs(distanceFromEnd) >= Number.EPSILON ) { diff --git a/packages/virtualized-lists/Lists/__tests__/__snapshots__/VirtualizedList-test.js.snap b/packages/virtualized-lists/Lists/__tests__/__snapshots__/VirtualizedList-test.js.snap index b59f291eb6dbbe..cd174da04cca2c 100644 --- a/packages/virtualized-lists/Lists/__tests__/__snapshots__/VirtualizedList-test.js.snap +++ b/packages/virtualized-lists/Lists/__tests__/__snapshots__/VirtualizedList-test.js.snap @@ -3122,12 +3122,53 @@ exports[`gracefully handles negative initialScrollIndex 1`] = ` /> + onFocusCapture={[Function]} + style={null} + > + + + + + + + + + + + + + + + + + `;