We're excited to release React Native Windows 0.69.0 targeting React Native 0.69. There have been many changes to both react-native-windows
and react-native
itself and we would love your feedback on anything that doesn't work as expected.
How to upgrade
You can view the changes made to the default new React Native Windows applications for C++ and C# using React Native Upgrade Helper. See this document for more details.
What's new from React Native
- React 18:
react-native
0.69 has been upgraded toreact
18. While this includes lots of "out-of-the-box" improvements, if you're sharing your JS code with a react-based web application, you'll want to make sure that you're able to do the upgrade. See the React v18.0 blog post for details. - Hermes Distribution: Apps using the "New Architecture" will default to using Hermes as the default JS engine. To support this Hermes will now be bundled with react-native. See Hermes as default engine discussion for details.
For more information on the upcoming RN 0.69, see the Road to 0.69.0 release discussion.
What's new from React Native for Windows
Performance
- Reduced app boot time by 1 second or more in Debug mode
- Some libraries used only in uncommon scenarios are now delay-loaded on demand
- Fixes issue with
run-windows
ignoring a cache when autolinking windows modules, repeating disk reads
Debuggability
- [Hermes] Fix issues with debugger connection dropping when reloading the instance
- [Hermes] Enables collecting information about the state of Hermes when a crash occurs
- Exposed options for apps to request inline source maps from Metro
Reliability
- Fixes a crash in unpackaged win32 (XAML island) apps
- Fixes a crash that could happen when canceling some image loads
- Fixes a reentrancy issue that could lead to a crash when initializing RN or Hermes from multiple threads
- Fixes an issue where multiple debug targets would linger when creating new RN instances with Hermes
- Fixes a crash when hosting some non-RNW content (XAML, Adaptive Cards, etc.) in a RNW app
Accessibility
- Implemented importantForAccessibility="no-hide-accessibility"
- Fixes the
focusable
andaccessible
property behavior forTextInput
Other
- Adds support for unpackaged win32 apps carrying embedded resources (JS bundle, image assets, etc.)
- Enables RNW version checks from IDL for community modules
- Fixes an issue where right click events were not captured
- Adds
wrap-reverse
to flex wrap options - Adds support for dependency checking script to detect multiple versions of Visual Studio
- Using
react-native-window-init
to upgrade your RNW project re-uses the existingProjectGUID
, reducing the upgrade diff to your native project files - Various updates to the (still incomplete) turbo module and fabric implementation
- Various updates to the (still incomplete) WindowsAppSDK-based implementation
- Various dependency version updates to resolve security issues
- Various other bugfixes and improvements
- Implemented the Blob data type for both HTTP and WebSocket modules.
- Expose LoadingState property on ReactContext.
Breaking Changes
focusable
andaccessible
props are now synchronized to align with Windows UIA standards. If a control has eitherfocusable
oraccessible
set to false, the control will lose keyboard and accessibility focus. There is an exception in functionality in the case of the View control, where setting eitherfocusable
oraccessible
to true will allow the component to gain keyboard and accessibility focus.
Known Issues
- Pressable Pointer Events: React Native 0.69 adds experimental support for W3C pointer events for Pressables, (disabled by default). RNW does not raise these events, so enabling the support will break hover events on Windows.