Javascript React Native

React Native v0.64.x released12 min read

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 from ScrollView component (deprecated in 0.47) (345d0c1abb by @ZHUANGPP)
On Image, onLoad event objects’ source.url is now renamed to source.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 and onError event objects will no longer have an extra uri 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 from RCTScrollView (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 and onPressOut. (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 forward initialProps to WrapperComponent (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() to DeviceEventEmitter and NativeEventEmitter. (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 on Image (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 missing clearColor (b7167c23fc by @Simek)
Update template to Xcode 12 (6685aba462 by @janicduplessis)
Add importantForAccessibility to AccessibilityProps (fd660fd0c5 by @ZHUANGPP)
Allow hotkeys to be used without command key (f2b9ec7981 by @rickhanlonii)
Add disableButtonsIndices option to ActionSheetIOS component (a7c1c5aff2 by @lukewalczak)
Add showSoftInputOnFocus to TextInput (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 from react-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’s onEndReachedThreshold 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 if contentOffset is provided to the same VirtualizedList (3346ac7f96 by @markv)
Migrated VirtualizedList legacy context implementation to React.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 of TextInput (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: Set caretHidden default value to true 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 HERMESENABLEBITCODE 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 to false by default in template (7b61a968fd by @wddwycc)

Removed

Text.viewConfig is no longer exported. (06ce643565 by @yungsters)
Removed once() and removeCurrentListener() from DeviceEventEmitter and NativeEventEmitter. (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 fires onPress when pressed for >500ms, when onLongPress is not supplied. (bdf3c79110 by @yungsters)
Pressability now consistently fires onPressIn and onPressOut, even without an onPress. (0c392bc405 by @yungsters)
Remove extraneous argument for onResponderGrant Flow type on Text. (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 from onPressOut 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 in renderApplication (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 in removeClippedSubviews 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 calling DisplayMetricsHolder.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 to preferredFramesPerSecond, 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)React Admin Templates and Themes

Pin It on Pinterest

Generated by Feedzy