Change8

v0.84.0-rc.0

Breaking Changes
📦 react-nativeView on GitHub →
9 breaking8 features🔧 19 symbols

Summary

This release bumps the minimum Node.js requirement to v22.11 and removes several legacy CxxModule and architecture components. It significantly expands AnimationBackend property support and improves web-standard API compliance for URL and Pressability.

⚠️ Breaking Changes

  • Minimum Node.js version bumped to v22.11.
  • TurboModuleBinding constructor is now private.
  • TurboCxxModule, RCTCxxModule, and CxxModule (Java/Kotlin/C++) have been removed; migrate to TurboModules.
  • Microtask API removed from JSTimerManager.
  • CxxModule support removed from CatalystInstance.
  • Android: unstable_shouldEnableLegacyModuleInterop() removed.
  • Android: NativeKind class deleted.
  • Android: Legacy architecture classes in uimanager.layoutanimation and LazyReactPackage removed.
  • iOS: Legacy architecture is now disabled by default.

Migration Steps

  1. Upgrade Node.js environment to at least v22.11.
  2. Replace any usage of CxxModule, TurboCxxModule, or RCTCxxModule with the new TurboModule system.
  3. If using iOS, ensure compatibility with the New Architecture as legacy is now off by default.
  4. Update Android implementations to remove dependencies on LazyReactPackage and legacy layoutanimation classes.

✨ New Features

  • AnimationBackend now supports maxWidth, maxHeight, minWidth, minHeight, flex, outline, filter, border width, positional (left/top/right/bottom), margin, padding, shadow, transform, border radius, and background color props.
  • Support for parsing Readonly and ReadonlyArray in Flow utility types.
  • Added ResourceReceivedData trace events for network data chunks in Performance timeline.
  • Added experimental_backgroundSize, experimental_backgroundPosition, and experimental_backgroundRepeat to manual types.
  • Exported usePressability hook and PressabilityConfig/PressabilityEventHandlers types to public API.
  • URL and URLSearchParams now include missing standard properties (hash, host, pathname) and methods (get, set, delete).
  • Added support for bundling .heic and .heif files.
  • DevServer fast refresh banners now include a dismiss button.

🔧 Affected Symbols

TurboModuleBindingTurboCxxModuleRCTCxxModuleCxxModuleJSTimerManagerCatalystInstanceunstable_shouldEnableLegacyModuleInteropNativeKindLazyReactPackageRCTPackagerConnectionRCTDevSettingsusePressabilityPressabilityConfigPressabilityEventHandlersURLURLSearchParamsNativeAnimatedModuleNativeAnimatedTurboModuleconnectAnimatedNodeToShadowNodeFamily