-
Notifications
You must be signed in to change notification settings - Fork 340
Description
Description
When using FlashList with a RefreshControl on iOS, the progressViewOffset prop is ignored on the initial render.
In development builds, if I change the value and trigger a hot reload, the offset suddenly starts working. After a full reload of the app, it breaks again. In a production build, it never works (since the value never changes).
Current behavior
- Initial render: progressViewOffset behaves as if it was 0, even when a value (e.g. 100) is passed.
- Hot reload with a changed value (e.g. 100 → 101): offset is applied correctly.
- Full reload: offset is ignored again.
- Production build: offset never applies.
This makes it impossible to reliably use progressViewOffset in production on iOS.
Expected behavior
The progressViewOffset should be respected immediately on the first render, without requiring a hot reload or remount.
Reproduction
Steps to reproduce:
- Render a FlashList with a RefreshControl using progressViewOffset={100}.
- Pull to refresh → indicator appears at offset 0.
- Change the value (100 → 101) and save (hot reload).
Offset now works correctly. - Fully reload the app (Cmd+R).
Offset breaks again. - Build for production.
Offset never applies.
Expo Snack or minimal reproduction link:
https://snack.expo.dev/@blockoutproject/flashlist-progressviewoffset
(BTW I use a safeAreaView but It also doesn't render on initial render ...)
Platform
- iOS
- Android
- Web (if applicable)
Environment
React Native info output:
Binaries:
Node:
version: 22.12.0
path: ~/.nvm/versions/node/v22.12.0/bin/node
Yarn:
version: 1.22.22
path: ~/.nvm/versions/node/v22.12.0/bin/yarn
npm:
version: 11.5.2
path: ~/.nvm/versions/node/v22.12.0/bin/npm
Watchman:
version: 2024.12.02.00
path: /opt/homebrew/bin/watchman
Managers:
CocoaPods:
version: 1.16.2
path: /opt/homebrew/bin/pod
SDKs:
iOS SDK:
Platforms:
- DriverKit 24.2
- iOS 18.2
- macOS 15.2
- tvOS 18.2
- visionOS 2.2
- watchOS 11.2
Android SDK: Not Found
IDEs:
Android Studio: 2024.3 AI-243.25659.59.2432.13423653
Xcode:
version: 16.2/16C5032a
path: /usr/bin/xcodebuild
Languages:
Java:
version: 21.0.3
path: /usr/bin/javac
Ruby:
version: 2.6.10
path: /usr/bin/ruby
npmPackages:
"@react-native-community/cli":
installed: 20.0.2
wanted: latest
react:
installed: 19.1.0
wanted: 19.1.0
react-native:
installed: 0.81.4
wanted: 0.81.4
react-native-macos: Not Found
npmGlobalPackages:
"react-native": Not Found
Android:
hermesEnabled: true
newArchEnabled: true
iOS:
hermesEnabled: true
newArchEnabled: true
FlashList version: 2.0.2
Additional context
I've tried switching back to FlatList and the problem is gone.
Checklist
- I've searched existing issues and couldn't find a duplicate
- I've provided a minimal reproduction (Expo Snack preferred)
- I'm using the latest version of @shopify/flash-list
- I've included all required information above