React Native Screens 4.27.0

v4.​27.​0Minor Release

Key changes

This release adds support for React Native 0.87 (#4461), fixing a runtime crash on iOS in the process. It also introduces the experimental ScrollToTopGuard component (#4454) and completes the migration of the Split implementation from Swift to Objective-C.

Improvements

  • Android (Stack v5): support sending multiple updates via a view command in #4243
  • iOS (Stack v5): implement basic view commands for the header menu in #4339
  • iOS: add the experimental ScrollToTopGuard component in #4454
  • iOS (Stack v4): add subtitle support for UIMenu header button submenus in #4469
  • Change the default value of backTitleVisible to boolean true instead of the string 'true' in #4457
  • Add support for react-native@0.87.0-rc.3 in #4461
  • iOS (Split): migrate the implementation from Swift to Objective-C, covering ReactMountingTransactionObserving (#4458), appearance-related logic (#4459), RNSSplitNavigationController (#4462), RNSSplitScreenController (#4463) and RNSSplitHostController with all associated classes (#4465), followed by post Swift-removal cleanup (#4466)
  • Tests: add a scenario for Stack v5 preventNativeDismiss with a nested stack in #4279

Bug fixes

  • Android: defensively guard against an unexpected menu item ID in #4450
  • Android (Stack): stop adding the top inset to the measured header height when the header is disabled in #4452
  • Android: fix a crash when the header is updated during screen removal in #4468
  • Android (FormSheet v4): clean up the inset and layout listeners in #4470
  • iOS (Stack v4): fall back to inheriting the orientation when it is not defined on the screen in #4455
  • iOS: keep a view controller’s view in place instead of swapping it during a transition in #4456
  • iOS (Tabs): re-layout the tab bar after an async icon load to prevent label truncation on iOS 26 in #4460
  • iOS (Stack v5): use framework-style imports for React core headers in #4472
  • JS: prevent use of the ViewInstance type in #4471

Miscellaneous

  • Examples: allow explicit undefined for defaultRouteName in TabsContainerStateInitArg in #4353
  • Android: fix incremental compilation in FabricExample, broken by a Kotlin 2.2 symlink issue, in #4467
  • Bump the react-navigation submodule version in #4451
  • Format RNSScreenShadowNode.cpp after #4357 in #4453
  • Update workflows to include v4-main in #4396
  • Remove the nightly publishing flows from v4 and bump npm-package-publish in #4401
  • Block creating plain-text issues and update the agent instructions in #4366

This version supports React Native 0.84 and above.

Source: 4.27.0 release notes on GitHub. Full changelog: 4.26.2...4.27.0.

Release card
React Native Screens 4.27.0 release card