React Native 0.86 - Edge-to-Edge and DevTools Improvements, no breaking changes
Key Points
- Edge-to-edge fixes for Android 15+
- DevTools light/dark emulation via Emulation.setEmulatedMedia
- No user-facing breaking changes (upgrade-safe)
Summary
React Native 0.86 focuses on robust edge-to-edge support for Android (including Android 15+), improvements to React Native DevTools emulation, infrastructure moves, JSI additions, and a range of runtime, layout, accessibility and Android-specific fixes. This release declares no user-facing breaking changes, so most projects can upgrade without code changes.
Key Points
- Edge-to-edge (Android 15+): comprehensive fixes including correct measureInWindow coordinates, KeyboardAvoidingView behavior, accurate Dimensions window values, StatusBar updates while Modal is open, and navigation bar contrast respecting enforceNavigationBarContrast.
- DevTools: supports light/dark mode emulation via Emulation.setEmulatedMedia (open via cmd/ctrl + shift + P); the emulation is temporary and resets when DevTools disconnects.
- Repository move: React Native (and related repos) moved to the react GitHub organization; redirects are automatic.
- No user-facing breaking changes: upgrading from 0.85 should not require app code changes; consult the Upgrade Helper and Upgrading docs for diffs.
- Deprecations: ViewUtil.getUIManagerType and the second arg of AppRegistry.setComponentProviderInstrumentationHook are deprecated and will be removed in a future release.
- JSI/Native interface: new APIs (IRuntime exposure, typed arrays/Uint8Array, ArrayBuffer.detached, Array.push, String.length, isInteger, and JS error factory APIs) improve native↔JS capabilities.
- Rendering/layout fixes: Modal style now forwarded to inner container, native animated mounting sync fixes flicker, text-measure crash fixed, non-invertible transforms excluded from hit-testing, and several Yoga layout bug fixes.
- Android and platform fixes: BackHandler now includes native timeStamp and properly re-registers on resume (API 36+), LogBox/RedBox dismissible with back button, TextInput IME height and Samsung auto-capitalize fixes, Image.getSize returns true source dims, WebSocket preserves Cookie headers, and NetworkingModule handles large responses without OOM.
- Infrastructure: Metro updated (^0.84.2), HeadlessJsTaskSupportModule auto-registered in CoreReactPackage, and PerformanceObserver default durationThreshold aligned to 104ms per the web spec.
Upgrade Notes
- This release is marked upgrade-safe with no user-facing breaking changes. Use the React Native Upgrade Helper to review diffs for your project.
- New features and deprecations may require code updates later; remove usages of deprecated APIs ahead of future releases.
Where to look next
- Upgrade Helper and Upgrading docs for step-by-step upgrade guidance.
- DevTools: open Command Palette (cmd/ctrl + shift + P) to test light/dark emulation.
- Release changelog for full list of fixes and contributor acknowledgements.