React Native v0.64.x released
v0.64.x on GitHub (npm)
Release blog post
Changelog
v0.64.0
Breaking
- Enable
inlineRequires
by default in new projects'metro.config.js
. Gives a performance benefit but slightly different JS execution order (959365a902 by @GantMan) - Minimum supported Node version changed to 12 (4b92e2e53d by @safaiyeh)
- Remove deprecated
CameraRoll
API (deprecated in 0.61) (824d3a9770 by @seanyusa) - Remove deprecated
CheckBox
component (deprecated in 0.60) (dff17effe5 by @poteto) - Removed
DEPRECATED_sendUpdatedChildFrames
prop fromScrollView
component (deprecated in 0.47) (345d0c1abb by @ZHUANGPP) - On
Image
,onLoad
event objects'source.url
is now renamed tosource.uri
. (74ab8f6e5a by @yungsters)
Android specific
- Remove support of Android API levels 16 through 20. The new minSDK version will be 21+ moving forward. (973198667d, 25a40cbc61, f829722b54, b133427778, 9b34aa261c, and 79d0a7d711 by @mdvacca; 49f10fd2e5 and a17ff44adc by @JoshuaGross; dd4298a377 by @safaiyeh)
- Fix ReadableArray null annotations. Possibly breaking change for Kotlin apps. (d76556543f by @dulmandakh)
- On
Image
,onLoad
andonError
event objects will no longer have an extrauri
property. (74ab8f6e5a by @yungsters) - Deletes the method PlayTouchSound method from UIManagerModule, this method was moved to the SoundManagerModule class. (d0c4c5eaf9 by @mdvacca)
iOS specific
- Remove
calculateChildFrames
fromRCTScrollView
(62aa84a325 by @PeteTheHeat)
Deprecated
Android specific
- Deprecated method
UIManagerModule.getUIImplementation
. This method will not be part of the new architecture of React Native. (fe79abb32c by @mdvacca)
Added
- Adds the Hermes runtime bytecode version number to the JS bundle requestURL. This allows Metro with Bytecode to work with prebuilt binaries. (34c405462f)
- TextInput now supports
onPressIn
andonPressOut
. (b7b0e23202 by @yungsters) - Allow setting a custom performance logger in XMLHttpRequest (57b10f759e by @rubennorte)
- Add mock for
DevSettings
to jest preset (a50f736bb6 by @MarcoScabbiolo) - Added Inspector overlay support for Pressable (8ac467c51b by @yungsters)
- Introduce NativeModulePerfLogger (0486640571 by @RSNara)
- Add default
titlePlaceholder
in template configuration. (8ffa180d80 by @Esemesek) - Modified
renderApplication
to forwardinitialProps
toWrapperComponent
(4f5a092bf6 by @rubennorte) - Add warning to
VirtualizedList
when incorrectly using nested Lists or custom scroll components (7f2515ece8 by @kacieb) - Add native module for loading split JS bundles in development (fca3a39da5 by @makovkastar)
- Added
listenerCount()
toDeviceEventEmitter
andNativeEventEmitter
. (b11d6ecbb8 by @yungsters)
Android specific
- Upgrade Hermes to version 0.7 and turn on ES6 Proxy support (776a415d98 and bb003816a3 by @Huxpro, a28dd38909 by @janicduplessis)
- Add support for
shadowColor
on API level >= 28 (cfa4260598 by @IjzerenHein) - Add
android_hyphenationFrequency
prop to Text component (0fda91ffff and 7d8aeb4955 by @fabriziobertoglio1987) - Add
accessibilityHint
to TouchableNativeFeedback (72285d808d by @CMDadabo) - Adds support for the
onProgress
event onImage
(fa0e6f8051 by @yungsters) - ScrollView now supports
contentOffset
(ed29ba13f9 by @JoshuaGross) - Add an explicit NDK version to Android template (18ffe12203 by @safaiyeh)
- Exposed
getFlex
method as part of ReactShadowNode API (6570f7887b by @mdvacca) - Add
\*.hprof
files to gitignore (69ce9c21d4 by @enesozturk) - Move
DevSettingsActivity
from main to debug (d8e6c45782 by @invalid-email-address)
iOS specific
PlatformColor
: add missingclearColor
(b7167c23fc by @Simek)- Update template to Xcode 12 (6685aba462 by @janicduplessis)
- Add
importantForAccessibility
toAccessibilityProps
(fd660fd0c5 by @ZHUANGPP) - Allow hotkeys to be used without command key (f2b9ec7981 by @rickhanlonii)
- Add
disableButtonsIndices
option toActionSheetIOS
component (a7c1c5aff2 by @lukewalczak) - Add
showSoftInputOnFocus
toTextInput
(d54113d8c4 by @gurs1kh) - Added hostname to loading banner. (96999339b6 by @rickhanlonii)
- Allow iOS
PlatformColor
strings to be ObjC or Swift UIColor selectors (25793eab56 by @tom-un) - Add Dark Mode support to loading banner (94c45af136 by @rickhanlonii)
- Allow image loaders to enable/disable image telemetry (e37708dfb6 by @p-sun)
- Add
RCTDevSplitBundleLoader
native module (ad879e50bc by @cpojer)
Changed
- Update flipper to 0.75.1 (3399896ae7 by @janicduplessis)
- Refined Flow type for
Text
component. (a911efaecd by @yungsters) - Changed type definition of IPerformanceLogger from object to interface (b90f4d978f by @rubennorte)
- Removed
fbjs
dependency fromreact-native
. (54e19a6b7f by @yungsters) - Refined
ImageSource
Flow type for array-variant and headers. (a0dc252dc8 by @yungsters) - Some warnings changed to use
console.warn
without the "Warning:" prefix. (982272932c by @yungsters) - Core/Differ: detect and optimize reparenting (1e4d8d902d by @JoshuaGross)
- Improve "not a registered callable module" error message (e27d656ef3 by @vonovak)
- Use
VirtualizedList
'sonEndReachedThreshold
default value when null is provided (10b4b9505a by @fatalsun) - Migrate large amount of modules to flow strict and strict-local (4409642811 by @rubennorte)
- Enable exact objects by default in the project template Flow config (050a7dd019 by @rubennorte)
- Minor fix in Hermes Inspector cli tool help message (6ffb983f83)
- Updated the React Hooks ESLint Plugin in the community ESLint config (ac87e90fa5 by @gaearon)
- Don't scroll to
initialScrollIndex
ifcontentOffset
is provided to the sameVirtualizedList
(3346ac7f96 by @markv) - Migrated
VirtualizedList
legacy context implementation toReact.Context
. (7bd694fc6f by @yungsters) - Changed Flow type of
BackHandler
to be more specific. (a903d1b86a by @Naturalclar) - Updated transitive dependency
kind-of
to 6.0.3 to resolve vulnerability (abde0154ba by @TheSavior) - Upgrade eslint-config dependencies. (93019dc190 by @wcandillon)
- Upgrade to Jest 25 (f248ba1c8b by @cpojer)
- Use
React.Children.count
for counting children ofTextInput
(92160f3144 by @vonovak) - Annotate components in QPL logging using ImageAnalyticsTagContext (60b7a3085c by @p-sun)
- Upgrade to React 17 (24bca492c3 by @rickhanlonii)
- Made promise polyfill conditionalized on Hermes (0a28b34dac by @Huxpro)
- Flow: Remove type union in PickeriOS/PickerNativeComponent (3113e47b9b by @PeteTheHeat)
- Flow: export ColorValue from StyleSheet instead of StyleSheetTypes (0a67133124)
- Forward URL parameters from main bundle to hot reloaded bundles (b4785e5144 by @motiz88)
- Add package name / bundle ID to bundle URL in development (9b5359133b by @motiz88)
Android specific
- Bump Gradle Wrapper to 6.7 (8988a073b4, 5bc67b658e, and 3a8559b86c by @friederbluemle; e559aee642 and e9fd93f53f by @dulmandakh)
- Bump Android Gradle Plugin to 4.1.0 (cf8368f204 and 553fb8b28d by @friederbluemle, dfa9db49e3 by @dulmandakh)
- Bump Okio to 1.17.5 (1e78e0655d by @dulmandakh)
- Make Android versionCodeOverride for new apps using the template human-readable (e1bf515ae8 by @gedeagas)
- Bump SoLoader to 0.9.0 (7465239230 by @dulmandakh)
- Update Okhttp to version 3.12.12 (0f6fcb2c27 by @halaei)
- Update Android build tools to 29.0.3 (e629e94b46 by @friederbluemle)
- ViewCommands on Android now execute earlier, as a perf optimization. (c6b9cc36da by @JoshuaGross)
- Effect of
blurRadius
now more closely matches other platforms. (64860972be by @yungsters) - Migrate Android tests to Robolectric v4 (6a78b32878 by @jselbo, d373a8d88c and 18f7abae07 by @fkgozali)
- Get ripple drawables by id instead of by name (c8ed2dbbb2 by @vonovak)
TextInput
: SetcaretHidden
default value totrue
on Xiaomi devices to fix the crash (b5b4a70410)- Update loading banner text and colors (6afc984e81 by @makovkastar)
- Declare all attrs used in res targets (05abbd245c by @IanChilds)
iOS specific
- Upgraded JSI with a new HERMES_ENABLE_BITCODE flag (311d4e9ef0 by @grabbou)
- Remove main queue execution of constantsToExport in NativeModules (d7ac21cec5 by @RSNara)
- Updated loading banner messages and color (3729fe8de0 by @rickhanlonii)
- Speed up loading banner animations (3fb37b4326 by @rickhanlonii)
- Shrink loading bar down to not cover safe area. (f0dfd35108 by @rickhanlonii)
- Build macOS framework and add CocoaPods podspec (ffa3d7f638 by @alloy)
- Set
NSAllowsArbitraryLoads
tofalse
by default in template (7b61a968fd by @wddwycc)
Removed
Text.viewConfig
is no longer exported. (06ce643565 by @yungsters)- Removed
once()
andremoveCurrentListener()
fromDeviceEventEmitter
andNativeEventEmitter
. (87a2e29f59 by @yungsters) - Removed tvOS related files from the template (df03228a61 by @Naturalclar)
Android specific
- Remove undocumented ColorAndroid function (411c344794 by @tom-un)
Fixed
- Fix handling of very deeply nested data across the bridge (a8c90e6af4 by @mhorowitz)
- Prevent TypeError in TaskQueue when cancelling a started but not resolved promise. (14042fb76f by @robwalkerco)
- Fix typo in
ActionSheetManager
invariant message (9c353b5ab0 by @sweatherall) TouchableHighlight
now correctly firesonPress
when pressed for >500ms, whenonLongPress
is not supplied. (bdf3c79110 by @yungsters)Pressability
now consistently firesonPressIn
andonPressOut
, even without anonPress
. (0c392bc405 by @yungsters)- Remove extraneous argument for
onResponderGrant
Flow type onText
. (49015b0f5b by @yungsters) - Prevent
ScrollView
From Stealing Responder Capture When Using Physical Keyboard (93e7a7a70d by @NickGerleman) - Fix failure when debugging code in a browser; was caused by
performanceNow()
function. (db474a47b7 by @zerkella) - Fix test renderer mocks to use the
displayName
more often. (4b935ae95f by @rickhanlonii) - Make sure
LogBox
is not included in production bundles (d3b937f990 by @janicduplessis) - Mark
force
as an optional property of the PressEvent object (ad2f98df8f by @Simek) - Fix invalid
event
objects fromonPressOut
in certain cases (2c600b7c5a by @yungsters) - When Hermes debugger is enabled continue to send log messages to the console (77ef8f881f by @MartinSherburn)
- Handle nullish
initialProps
correctly inrenderApplication
(26c120c632 by @rubennorte) - Fix Flow type of Touchable{Opacity,Bounce,Highlight} being exported as
any
(de7f69a58e by @draperunner) - Clarified the boundaries in error message of
scrollToIndex
(78d2b3c813 by @sasurau4) - Fix jsi cmake include dirs (f5d00e5a29 by @ryantrem)
- Fix race condition in
KeyboardAvoidingView
(b08fff6f86 by @sammy-SC) - Fix clone issue in YogaNodeJNIBase (2707c17b07 by @pasqualeanatriello)
- Fix "Cannot read property 'getNativeScrollRef' of undefined" in createAnimatedComponent (629e10e91b by @sammy-SC)
Android specific
- Fix App Bundle/Release build missing index.android.bundle with gradle plugin 4.1.0/gradle 6.5 (53f55001af by @tomoima525)
- Do not crash when
ScrollView
snapToOffsets
array is empty (d238da71aa by @makovkastar) - Fixed
TextInput
not being selectable inremoveClippedSubviews
FlatLists (12a50c0a44 by @hsource) - Make nested
Text
components accessible as links (b352e2da81 by @ejanzer) - Move selection to the end of the text input on accessibility click (f0e80ae229 by @ejanzer)
- Fix secure text entry setting to always hide text (f19372361f by @smeenai)
- Make promise NativeModule methods dispatch to NativeModules thread (9c35b5b8c4 by @RSNara)
- Fix
NoSuchMethodException
when callingDisplayMetricsHolder.initDisplayMetrics
in Android API level <= 16 (though those Android versions are no longer supported) (35128f45d1 by @mdvacca) - Fixed error message in
DebugCorePackage.getModule
(a71f37b951 by @TheWirv) - ScrollView, HorizontalScrollView: do not ignore
null
contentOffset
prop (9e85b7ad88 by @vonovak) - Picker - fix usage of setNativeSelectedPosition in onSelect (078e386024)
- Fix intermittent crash of ReactSlider on Android (32888a8b4a by @mdvacca)
- Use actual constructor when throwing GradleScriptException (8ef0f1d90b)
- Fix
skewX
transform decomposition (797367c089 by @wcandillon) - Allow passing partial contentOffset to ScrollView on Android (0348953914 by @janicduplessis)
- Check if NativeModules returned from CatalystInstanceImpl.getNativeModule are null before using them. (9263eb5d38 by @RSNara)
- Fix calculating view position within the window in split-screen mode (b020e7c440 by @jakubkinst)
- Text layout no longer ignores parent bounds (025be8148a by @yungsters)
- Fixed excessive space in Text view with word-wrapping (dda7f82261 by @yungsters)
Pressable
: ripple should be applied even when borderless == false (44ec762e41 by @vonovak)- Fix
ReadableNativeMap.getNullableValue
to match signature and return null instead of throwing (1015194ba1 by @dulmandakh) Picker
: set color filter so that the arrow matches the text color (bb8d0f5732 by @ejanzer)Modal
: fix crash when updating props after the activity disappeared (7abcaafd66 by @mdvacca)- Fix crash while measuring ReactSlider in Android API < 21 (75e6f7961f by @mdvacca)
- Fix measureLayout function for VirtualTexts (5c48c94f8c by @mdvacca)
- Smoother scrolling in ScrollView, HorizontalScrollView (10314fe621 by @JoshuaGross)
iOS specific
- Synchronize RCTImageLoader loaders initialization (edb6fa7979 by @p-sun)
- Make sure js bundle still exists at bundle-output path (3a41f69f9c by @janicduplessis)
- Fix crash in WebSocket module (748aa13747 by @marksinkovics)
- Align multi-line
TextInput
onSubmitEditing
behavior: don't call onSubmitEditing when blurOnSubmit=false (521b16730d by @tido64) - Fix passing react native path in Podfile template (e599d6c5d3 by @janicduplessis)
- Call [RCTEventEmitter stopObserving] on correct method queue (23717e48af by @appden)
- Persist Enable Fast Refresh across app launches (845e9eaafb by @stigi)
- Fix xcodebuild warnings in React-Core (cb719a16cc)
- Fix that RCTModalHostView can't be dismissed while being presented (8933724d7d by @Mi-ZAZ)
- Fix "'RCTBlobPlugins.h' file not found" when building iOS (aaeffdb49a by @tido64)
- Improved text rendering on macOS Catalyst (694e22de84 by @andymatuschak)
- Fixed showing Alert while closing a Modal (f319ff321c by @devon94)
- Fix
refreshControl
messes up navigationBar largeTitles (1b0fb9bead by @yogevbd) - When Sec-WebSocket-Protocol header is empty vaulue, IIS server will return error 502. (fd85b84a86 by @bill2004158)
- Fix multiline
TextInput
crash when inserting/removing lots of text (15dda0ab5a by @tido64) - Group accessible views using the view hierarchy (e2fd9d4f22 by @p-sun)
- Fix Flow types for StatusBar showHideTransition (e5a8f4270e by @Simek)
- Better error message when missing entry file (e73208e2ca by @petrbela)
- Fix imports in
RCTUtilsUIOverride.h
(b7e8f66795 by @Fanghao) - Fix skewX/skewY/perspective/matrix transforms. (4b956fe5a6 by @wcandillon)
- Fix module lookup race condition on bridge invalidation. (8ad810717e by @fkgozali)
- Fix duration calculation for
RCTUIImageViewAnimated
(12f8b2598f) - Cap loading banner percentage at 100% (e27542bb13 by @rickhanlonii)
- Delay loading banner message to prevent flashing messages (2b771b0129 by @rickhanlonii)
- Do not update loading banner message while hiding the banner (131c497aa2 by @rickhanlonii)
- Search en0 through en8 for the Metro Bundler's IP address when generating iOS debug builds (b2b23a2017)
- Migrate
frameInterval
topreferredFramesPerSecond
, fixing Xcode warnings (335f3aabe2 by @safaiyeh) - Animated image should animate at the same speed regardless of framerate (b0d0e51a77 by @p-sun)
- Fix logging lifecycle when image is scrolled out and immediately back in (1f95c9b62e by @p-sun)
- Fix image instrumentation lifecycle on image cancel (6cba4d2006 by @p-sun)
- Break retain cycle in RCTLegacyViewManagerInteropCoordinator (8f90ce26a5 by @sammy-SC)
- Respect port information if available from RCTBundleURLProvider (7d44959940 by @jimmy623)
- Remove port from JSLocation when returning packager host (12543d557f by @jimmy623)
- Remove requestToken being nil check from [RCTNetworkTask validateRequestToken] (ffc90c7f92 by @sammy-SC)
- Remove unnecessary packager running check when saved JSLocation is empty (bbb7bef539 by @jimmy623)
- Check whether packager is running in RCTBundleURLProvider for saved JSLocation (3d882495d5 by @jimmy623)
- Fix crash inside RCTRedBox when trying to present same UIViewController twice (46c77dc296 by @sammy-SC)
- Fix outdated CocoaPods version requirement in a React.podspec (8a6ac1fef3 by @sunnylqm)