Troubleshooting
"Invariant Violation: requireNativeComponent: 'NativeSheetHost' was not found"
The native code isn't in your app binary.
- iOS:
cd ios && pod install. - Rebuild:
npx react-native run-ios/run-android, ornpx expo run:ios/run:android. - Expo: you're probably in Expo Go. Use a development build.
"useNativeSheet() must be used inside <NativeSheetProvider>"
Add the provider at the root, above the component that calls the hook. Check that it isn't inside a screen that renders later than the caller.
present() returns {ok: false}
Log the reason and look it up in Error reasons. The most common are duplicate-id (the sheet is already open) and invalid-config (a colour that isn't 6- or 8-digit hex).
The sheet opens but content is empty or zero-height
- Native: the content wrapper fills the sheet with
flex: 1. If your root view has a fixedheight: 0orposition: 'absolute'without size, it won't show. - With
snapPoints: ['content'], give your content a measurable height (noflex: 1on the root view).
A context (theme, store, i18n) is missing inside the sheet
Sheet content is rendered by NativeSheetProvider, not by the screen that opened it. Move your context providers above NativeSheetProvider.
styles or variant don't change while a NativeSheet is open
variant, presentation, behavior, side, sizing and styles are read when the sheet opens. Close and reopen it, or change content/appearance, which update in place.
Sheet closes when I navigate on Android
The back press went to the sheet first. That's expected: the topmost sheet takes the back press. Set enableDrag: false to keep it open (see Back button).
iOS: snap points don't match the heights I asked for
On iOS 15 only the system medium and large detents exist. Custom heights need iOS 16.
iOS: pod install fails with a deployment target error
Set platform :ios, '15.0' (or higher) in your Podfile. Expo users: add the config plugin to app.json.
Android: build fails with "minSdkVersion 21 cannot be smaller than version 24"
Raise minSdkVersion to 24 in android/build.gradle (or expo-build-properties).
Web: "Unexpected token" or "Cannot find module './SheetSurface'"
Your bundler isn't compiling TypeScript from node_modules or isn't resolving .web.tsx. See the Web setup.
Still stuck?
Open an issue with your platform, React Native version, library version and a minimal example.