Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary:
I've seen some cases where
onStartReached
calls would be missed. This seems to happen because we bail out of callingonStartReached
if our current viewport is not currently at index 0 (react-native/packages/virtualized-lists/Lists/VirtualizedList.js
Line 1553 in 7bc9244
onStartReached
. To fix this we can try calling_maybeCallOnEdgeReached
whenever the viewport changes.I also seen cases where
firstVisibleItemKey
would be incorrect because of the early return here. To be honest I am not exactly sure why, butprevState.renderMask.numCells()
doesn't actually have the item count from the previous render, but the current item could, which would cause that code to return incorrectly and not updatefirstVisibleItemKey
. To fix this I am also trackinglastItemCount
in the state and comparing this too instead of relying only onprevState.renderMask.numCells()
.Changelog:
[GENERAL] [FIXED] - Fix onStartReached not called in some cases
Test Plan:
Tested in the Expensify app to test that this fixes some cases we saw of
onStartReached
not being called.