react-native-codegen
Installation
yarn add --dev react-native-codegenNote: We're using yarn to install deps. Feel free to change commands to use npm 3+ and npx if you like
⚛️ Code generation tools for React Native
console.disableYellowBox has been droppedremoveListener, deprecated since RN0.65, was removed from AppearanceSegmentedComponentIOS, you will now need to move to the segmented-control library (235f168574)Nullable for optional objects and arrays in module codegen. (ffaa5d69bc)hotkeysEnabled property is added to RCTDevMenu which allows enabling/disabling hotkeys that triggers developer menu popup (1a1a304ed2)accessibilityLanguage prop to all the available components. The prop is available for any platform but it will work only on iOS. (7b05b091fd by @dgopsq)eslint-config: add support for ESLint 8 (864a8c11b2 by @wcandillon)eslint-config: add support for TypeScript 4.5+ (199ac680c7 by @rnike)MapBuffer interface for ReadableMapBuffer (81e4249315)hermes-engine from the react-native NPM package. (4d91f40fbd by @cortinico)com/react/facebook/uimanager/interfaces files into com/react/facebook/uimanager to enable Kotlin build (b1a779392d)react-native-gradle-plugin as a dependency from template's package.json (cd79317672 by @cortinico).xcode.env file is missing, actually using the old find-node-for-xcode.sh script (705c6f57d6 by @cipolleschi)find-node.sh scripts and replaces it with an .xcode.env file that is sourced by the script phases that needs it. The .xcode.env file is versioned: to customize a local environment, an unversioned .xcode.local.env can be used. (0480f56c5b by @cipolleschi)PushNotificationIOS.checkPermissions to include iOS 10+ notification settings. (17ecd2fb5b)'Debug' (b5343a6b0d by @cipolleschi)hermes-engine CocoaPod. (12ad1fffe8 by @hramos)react-native/jest/preprocessor.js by external projects (c1e9aa9a27 by @motiz88)DynamicColorIOS to only two properties (13b0b06522)codegenNativeComponent when on 'Paper' (494b73cb33 by @tido64)focus() on TextInput to respect its editable state (8a5460ce80 by @vonovak)using namespace being used as part of header (009d80bf5a by @arhelmus)TimingModule related functions for headless JS tasks, eg. setTimeout (dac56ce077 by @marcesengel)rootProject directly in Gradle scripts (b2bc5aa5c9 by @cortinico)RCTLocalizationProvider Fall back to input when no localization is available (18196512db by @robhogan)pod install when RCT-Folly version has been updated. (b2517c3bdc by @fortmarek)pod install --project-directory=ios failing when Hermes is enabled (1b22e8a039, (eb7cc85a91 by @tido64)fallbackResource from RCTBundleURLProvider API (0912ee179c) by @philIipIf you are interested in enabling the new architecture, please refer to the dedicated documentation.
newArchEnabled property to Opt-in the New Architecture in the template (8d652fba4c by @cortinico)platformConfig to NativeAnimated (4a227ce2ab by @rozele)accessibilityLabelledBy props (36037fa81b by @grgr-dkrk)onChildEndedNativeGesture to the RootView interface to let its implementations notify the JS side that a child gesture is ended. (9b33c31ee0 by @ryancat)reactNativeArchitectures property more discoverable (0f39a1076d by @cortinico)isAccessibilityServiceEnabled to get if accessibility services are enabled (c8b83d4e0b by @grgr-dkrk)Image.propTypes, Text.propTypes, TextInput.propTypes, ColorPropType, EdgeInsetsPropType, PointPropType, or ViewPropTypes now emits a deprecation warning. (3f629049ba by @yungsters)core-workflow-apply-version-label version (e973b3afc2 by @lucasbento)vendor/bundle into .gitignore template (2f67f5d68b by @MoOx)MessageQueueThread#runOnQueue return a boolean. Made MessageQueueThreadImpl#runOnQueue return false when the runnable is not submitted. (89faf0c9a8)jsBundleURLForBundleRoot:fallbackResource to jsBundleURLForBundleRoot: (aef843bfe6 by @philIip)no-shadow rule returning false positive for TypeScript enums (722a0ff6f8 by @fiznool)onLayout prop is handled correctly in <KeyboardAvoidingView> (9c5e177a79)performance.now() on iOS and Android (1721efb54f by @mrousavy)ReactScrollView to use Context instead of ReactContext in the constructor to be less restrictive. (7b77cc637e by @ryancat)contentInset when animating new items with autoscrollToTopThreshold, make automaticallyAdjustKeyboardInsets work with autoscrollToTopThreshold (includes vertical, vertical-inverted, horizontal and horizontal-inverted ScrollViews) (49a1460a37 by @mrousavy)Time.h patch not being applied when running pod install --project-directory=ios (60cef850bd by @tido64)__apply_Xcode_12_5_M1_post_install_workaround failing when one of the Pods has no IPHONEOS_DEPLOYMENT_TARGET set (9cd4092336 by @Yonom)CFRunLoopPerformBlock does not push/pop an autorelease pool. (3fff164dfa by @christophpurrer)pod install --project-directory=ios failing due to wrong path to React-Codegen (ebb26cf2e4 by @tido64)reactRoot in favor of root and reactNativeDir (8bc324fd34 by @cortinico)accessibilityStates no longer passed through to RCTView. (1121ed94ab by @luism3861)Time.h patch not being applied when running pod install --project-directory=ios (60cef850bd by @tido64)hide. (a46a99e120 by @asafkorem)ACCESS_MEDIA_LOCATION permission to PermisionsAndroid library. (79db483568 by @Skrilltrax)SnapToAlignment in ReactScrollView (e774c037bc), ReactScrollViewManager (c6e5640e87), ReactHorizontalScrollView (b12256394e), ReactHorizontalScrollViewManager (deec1db9fd) and update ScrollView.js (a54cfb9e57) and reach parity with iOS (04184ef851) by @mdvaccacancelButtonTintColor prop for ActionSheetIOS to change only the text color of the cancel button (01856633a1 by @nomi9995)LSApplicationQueriesSchemes in info.plist with entries tel, telprompt, http, fb, geo (b26f277262 by @utkarsh-dixit)UIAccessibilityTraitUpdatesFrequently to progressBar role (1a42bd6e97 by @jimmy623)asdf-vm support in find-node.sh (3e7c310b1d by @pastleo)ImageBackground now respects imageStyle width and height (dbd5c3d8e5 by @Naturalclar)Keyboard.removeEventListener to Keyboard.removeListener. (8880c09076 by @yungsters)Modal's mock to not render its children when it is not visible (ec614c16b3 by @AntoineDoubovetzky)react-devtools-core dependency to 4.19.1 (356236471a by @jstejada)overflow: scroll in View component style will clip the children in the View container (93beb83abe by @ryancat)Animated.View (w/ JavaScript-driven animations) will no longer be flattened; this should be a transparent change. (4fdbc44ab5 by @yungsters)react.gradle detectCliPath function logic for cliPath case (ce51b62494 by @vitalyiegorov)"high" and "balanced" as values for android_hyphenationFrequency on Text (a0d30b848a)GLOBAL. (a101fc768c by @rubennorte)StaticContainer.react.js, ensurePositiveDelayProps.js, InteractionMixin.js, queryLayoutByID.js (64aa1e5ffe by @ecreeth)DatePickerAndroid from react-native. (7a770526c6 by @andresantonioriveros)blockList (7923804c28 by @rh389)Animated.ValueXY when validating Animated.event. (27dd2ecb70 by @javache)getIgnorePatterns in LogBoxData.js for tests or other usecases. (a950634424)onPress does not work with last character (132d1d00f8 by @fabriziobertoglio1987)textBreakStrategy default to be 'highQuality' (3b2d541989)hermesFlags not working with multiple variants (91adb761cf by @grit96)ScrollTo API in ScrollView will check the actual scroll position before setting the scroll state (1a9e2d5d55 by @ryancat)keyboardDidShow height calculation API 28+ (8bef3b1f11 by @fabriziobertoglio1987)currentActivity being null when launching Redbox (f4fdf4b55e)"FLAG_ACTIVITY_NEW_TASK" flag (required by OS). (04fe3ed80d by @Krizzu)keyboardDismissMode="on-drag" on Android (7edf9274cf by @janicduplessis)alignItems: baseline for <Text> elements on Android (1acf334614)OnKeyPress event not fired with numeric keys (ee3e71f536 by @fabriziobertoglio1987)defaultSource not showing on iOS (900210cacc by @cristianoccazinsp)pod install with --project-directory=ios (ef5ff3e055 by @sonicdoe)apply_Xcode_12_5_M1_post_install_workaround causing pods targetting iOS 12 and above to fail (a4a3e67554 by @Yonom)Keyboard.removeEventListener to Keyboard.removeListener. (8880c09076 by @yungsters)getIgnorePatterns in LogBoxData.js for tests or other usecases. (a950634424)find-node.sh in react-native-xcode.sh script (cc59a7cbde by @garethknowles)overflow: visible (e35a963bfb by @hsource)autoCompleteType prop of TextInput to autoComplete (27fec9569e by @jeswinsimon)global.queueMicrotask (be189cd819 by @Huxpro)markerPoint to allow callers to add additional arbitrary string data to logged points (aa98978302)accessibilityRole (da899c0cc4 by @kacieb)MEDIA_STOP, MEDIA_NEXT, and MEDIA_PREVIOUS event support to Android TV (3e2bb331fc by @havlasme)ReactScrollView (0ef5beee85 by @JoshuaGross)TextInputProps (8434177722)PlatformColor to return user-defined named asset color (36c0a7dec1 by @oblador)UIAccessibilityTraitsTabBar (11f8d9c7cd by @jimmy623)RCTInitializing to allow NativeModules to initialize themselves (9b45df1fce by @RSNara)RCTCallableJSModules API for NativeModules (ece373d244 by @RSNara)RCTBundleManager to NativeModules (329f58ee46 by @RSNara)type === 'warn'. (883e0d5752 by @yungsters)accessibilityState.disabled is set (ea609defe8 by @chakrihacker)react-devtools-core from ~4.6.0 to ^4.13.0 (9e020ef476 by @bvaughn)PermissionsAndroid (2bcc6fac38 by @iBotPeaches)AndroidTextInput.AndroidTextInput.color prop to use SharedColor instead of int (bc57056cc3 by @mdvacca)infer-annotation to 0.18.0. (b5c94e316c by @yungsters)StyleSheet.create will no longer do DEV-time validation. (2e8c0bd7ea by @yungsters)window not existing in jest setup (bc1c533833 by @timomeh)numberOfLines in <Text> component (3bc883c6c6 by @ShikaSD)jest/create-cache-key-function dep root package.json (9a43eac7a3 by @janicduplessis)type is "warn". (e4a4c4d6d7 by @yungsters)accessibilityAction props into object instead of string (faaeb778df by @ShikaSD)console.error when passed warning-like objects. (0dba0aff18 by @yungsters)overflow: visible (e35a963bfb by @hsource)<Text adjustsFontSizeToFit={true}> on Android (59021521e7)borderRadius is 0 (3e5998e651 by @IjzerenHein)mHybridData thread safe (7929551623)NullPointerException caused by race condition in ReactInstanceManager.getViewManagerNames method (fb386fccdd by @mdvacca)ViewProps.isLayoutOnly (e6b9508f12 by @javache)snapToOffsets to a null value (ba387b91d3 by @maxoumime)setAccessible to ReactImageManager to allow screenreader announce Image accessibilityState of "disabled" (333b46c4b0 by @fabriziobertoglio1987)RCTi18nUtil (fcead14b0e by @Saadnajmi)actionName in accessibility event callback (fed6ad5bad by @ShikaSD)react-test-renderer to 17.0.2 in the template (d272880 by @@rickhanlonii)NODE_BINARY after finding the right path to node (d75683 by @santiagofm)ColorProps with value null should be defaultColor instead of transparent (842bcb902e by @hank121314)react-native-codegen version 0.0.7 is now needed as a devDependency in the package.json.flipper_post_install with react_native_post_install hook. Will automatically detect if Flipper is enabled. (42dde12aac by @grabbou)onPressIn & onPressOut props to Text (1d924549ca by @adrienharnay)RootTagContext. And temporarily export both unstable_RootTagContext and RootTagContext (9d489354ae by @nadiia)sendAccessibilityEvent in the React(Fabric/non-Fabric) renderer (99b7052248 by @JoshuaGross)localeIdentifier to I18nManager constants (6b91ae73cd by @acoates-ms)displayName to some RN contexts to make them more easy to differentiate when debugging. (68a476103a by @bvaughn)displayName to TouchableHighlight and TouchableOpacity (c4e40b81c0 by @brunohkbx)stickyHeaderHiddenOnScroll option to keep the sticky header hidden during scrolling down, and only slide in when scrolling up (ffba25c648)debugName parameter to renderApplication to use as the display name for the React root tree (eeb36f4709 by @rubennorte)cancelOnBackground for UserFlow (0d4985900b by @dmitry-voronkevich)getRecommendedTimeoutMillis to AccessibilityInfo (d29a7e7a89 by @grgr-dkrk)accessibilityState.selected to false. (73bc96ecf9 by @yungsters)onFocus and onBlur for Pressable on Android. (cab4da7288)TurboModuleManagerDelegates with ReactInstanceManager (eb7e89e286 by @RSNara)RCTFabricSurface to help with reloads (53858ceaa3 by @PeteTheHeat)RCTRootView to be initialized with a frame (00bc09c8f7 by @appden)NSURLSessionConfiguration (58444c74f5 by @hakonk)addListener or removeListeners is passed to NativeEventEmitter (114be1d217 by @rubennorte)accessibilityState when the TouchableWithoutFeedback is disabled. (697164077c by @carloscuesta)react-devtools-core dependency to 4.12.0 (5a2693d78f by @bvaughn)accessibilityState when TouchableHighlight is disabled (f69e096bb4 by @Naturalclar)TextInput during test runs. (397bfa6ad7 by @nadiia)usePressability hook in TextInput (c4aa411ee3 by @nadiia)Keyboard no longer inherits from NativeEventEmitter, so it no longer implements removeAllListeners, and removeSubscription. (1049835b50 by @yungsters)AppState no longer inherits from NativeEventEmitter, so it no longer implements addListener, removeAllListeners, and removeSubscription. (6f22989e92 by @yungsters)DevSettings no longer inherits from NativeEventEmitter (70cd569e7e by @yungsters)use_flipper!() will no longer need custom overrides to build with XCode 12.5 (4246c75d0d by @mweststrate)Appearance.addChangeListener now returns an EventSubscription. (305b4253c2 by @yungsters)Dimensions.addEventListener now returns an EventSubscription. (c47a03563d by @yungsters)NativeEventEmitter to also use the passed native module to report subscriptions on Android (f5502fbda9 by @rubennorte)hasActiveCatalystInstance to hasActiveReactInstance (dfa8eb0558)ReactContext (d79212120b by @mdvacca)getTurboModule: required (e0b8f5080f by @RSNara)progressViewOffset prop of RefreshControl and VirtualizedList now works on iOS (310a6bcf4b by @davidbiedenbach)EventEmitter#removeSubscription is now deprecated. (cb6cbd12f8 by @yungsters)EventEmitter(...). (14f7a2b707 by @yungsters)AccessibilityInfo.removeEventListener. (003d63d6e5 by @yungsters)Linking.removeEventListener. Instead, call remove() on the subscription returned by Linking.addEventListener. (6d1aca806c, 035718ba97 by @yungsters)NativeModule.onCatalystInstanceDestroy() for NativeModule.invalidate() (18c8417290 by @RSNara)hasActiveCatalystInstance() as Deprecated (1b50722a7e)RootTagContext (9b98edcd01 by @nadiia)getNode() from animated component refs. (b914153286 by @yungsters)AccessibilityInfo.fetch, use isScreenReaderEnabled instead. (d831134d51 by @yungsters)RCTDeviceEventEmitter.sharedSubscribers. (3af0c84aa5 by @yungsters)ScrollResponder.Mixin methods into ScrollView to Remove ScrollResponder.js (099f67cf8a by @kacieb)NativeEventEmitter no longer inherits from EventEmitter, so it no longer implements removeListener and removeSubscription. Instead, use the remove() method on the subscription object returned by addListener. (d39643b9de by @yungsters)RCTDeviceEventEmitter no longer throws for StatusBar, Keyboard, and AppState events. However, you are still recommended to use the more appropriate modules for listening to these events. (c8c975f0d7 by @yungsters)NativeEventEmitter constructor (f5f47879b8 by @yungsters)setTimeout with delays greater than 1 minute. (480dabd665 by @yungsters)Touchable.TOUCH_TARGET_DEBUG property. (ef765d423c by @yungsters)ReactFragmentActivity class. (2798e7172b by @dulmandakh)addListener from Networking (a81b7d18fa by @yungsters)getTurboModule:initParams (c4c34a1237 by @RSNara)getInnerViewNode and getInnerViewRef ref methods (6e36d046a3 by @vshab)onScrollDragEnd and onMomentum methods (46be292f67 by @kacieb)YGDisplayNone and YGPositionTypeAbsolute (b15f8a30e7 by @rozele)borderRadius: any with backgroundColor: null (42b6e6682c)android_hyphenationFrequency on Text. (1433ed6333 by @yungsters)testID as the resource-id for black-box testing frameworks (381fb395ad by @jdeff)onDismiss prop will now be called successfully. (d85d5d2e19 by @kkoudev)react-native-xcode.sh (b496a531e0 by @robertying)prefetchImageWithMetadata redbox(f27e305056 by @p-sun)inlineRequires by default in new projects' metro.config.js. Gives a performance benefit but slightly different JS execution order (959365a902 by @GantMan)CameraRoll API (deprecated in 0.61) (824d3a9770 by @seanyusa)CheckBox component (deprecated in 0.60) (dff17effe5 by @poteto)DEPRECATED_sendUpdatedChildFrames prop from ScrollView component (deprecated in 0.47) (345d0c1abb by @ZHUANGPP)Image, onLoad event objects' source.url is now renamed to source.uri. (74ab8f6e5a by @yungsters)Image, onLoad and onError event objects will no longer have an extra uri property. (74ab8f6e5a by @yungsters)calculateChildFrames from RCTScrollView (62aa84a325 by @PeteTheHeat)UIManagerModule.getUIImplementation. This method will not be part of the new architecture of React Native. (fe79abb32c by @mdvacca)onPressIn and onPressOut. (b7b0e23202 by @yungsters)DevSettings to jest preset (a50f736bb6 by @MarcoScabbiolo)titlePlaceholder in template configuration. (8ffa180d80 by @Esemesek)renderApplication to forward initialProps to WrapperComponent (4f5a092bf6 by @rubennorte)VirtualizedList when incorrectly using nested Lists or custom scroll components (7f2515ece8 by @kacieb)listenerCount() to DeviceEventEmitter and NativeEventEmitter. (b11d6ecbb8 by @yungsters)shadowColor on API level >= 28 (cfa4260598 by @IjzerenHein)android_hyphenationFrequency prop to Text component (0fda91ffff and 7d8aeb4955 by @fabriziobertoglio1987)accessibilityHint to TouchableNativeFeedback (72285d808d by @CMDadabo)onProgress event on Image (fa0e6f8051 by @yungsters)contentOffset (ed29ba13f9 by @JoshuaGross)getFlex method as part of ReactShadowNode API (6570f7887b by @mdvacca)\*.hprof files to gitignore (69ce9c21d4 by @enesozturk)DevSettingsActivity from main to debug (d8e6c45782 by @invalid-email-address)PlatformColor: add missing clearColor (b7167c23fc by @Simek)importantForAccessibility to AccessibilityProps (fd660fd0c5 by @ZHUANGPP)disableButtonsIndices option to ActionSheetIOS component (a7c1c5aff2 by @lukewalczak)showSoftInputOnFocus to TextInput (d54113d8c4 by @gurs1kh)PlatformColor strings to be ObjC or Swift UIColor selectors (25793eab56 by @tom-un)RCTDevSplitBundleLoader native module (ad879e50bc by @cpojer)Text component. (a911efaecd by @yungsters)fbjs dependency from react-native. (54e19a6b7f by @yungsters)ImageSource Flow type for array-variant and headers. (a0dc252dc8 by @yungsters)console.warn without the "Warning:" prefix. (982272932c by @yungsters)VirtualizedList's onEndReachedThreshold default value when null is provided (10b4b9505a by @fatalsun)initialScrollIndex if contentOffset is provided to the same VirtualizedList (3346ac7f96 by @markv)VirtualizedList legacy context implementation to React.Context. (7bd694fc6f by @yungsters)BackHandler to be more specific. (a903d1b86a by @Naturalclar)kind-of to 6.0.3 to resolve vulnerability (abde0154ba by @TheSavior)React.Children.count for counting children of TextInput (92160f3144 by @vonovak)blurRadius now more closely matches other platforms. (64860972be by @yungsters)TextInput: Set caretHidden default value to true on Xiaomi devices to fix the crash (b5b4a70410)NSAllowsArbitraryLoads to false by default in template (7b61a968fd by @wddwycc)Text.viewConfig is no longer exported. (06ce643565 by @yungsters)once() and removeCurrentListener() from DeviceEventEmitter and NativeEventEmitter. (87a2e29f59 by @yungsters)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)onResponderGrant Flow type on Text. (49015b0f5b by @yungsters)ScrollView From Stealing Responder Capture When Using Physical Keyboard (93e7a7a70d by @NickGerleman)performanceNow() function. (db474a47b7 by @zerkella)displayName more often. (4b935ae95f by @rickhanlonii)LogBox is not included in production bundles (d3b937f990 by @janicduplessis)force as an optional property of the PressEvent object (ad2f98df8f by @Simek)event objects from onPressOut in certain cases (2c600b7c5a by @yungsters)initialProps correctly in renderApplication (26c120c632 by @rubennorte)any (de7f69a58e by @draperunner)scrollToIndex (78d2b3c813 by @sasurau4)KeyboardAvoidingView (b08fff6f86 by @sammy-SC)ScrollView snapToOffsets array is empty (d238da71aa by @makovkastar)TextInput not being selectable in removeClippedSubviews FlatLists (12a50c0a44 by @hsource)Text components accessible as links (b352e2da81 by @ejanzer)NoSuchMethodException when calling DisplayMetricsHolder.initDisplayMetrics in Android API level <= 16 (though those Android versions are no longer supported) (35128f45d1 by @mdvacca)DebugCorePackage.getModule (a71f37b951 by @TheWirv)null contentOffset prop (9e85b7ad88 by @vonovak)skewX transform decomposition (797367c089 by @wcandillon)Pressable: ripple should be applied even when borderless == false (44ec762e41 by @vonovak)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)TextInput onSubmitEditing behavior: don't call onSubmitEditing when blurOnSubmit=false (521b16730d by @tido64)refreshControl messes up navigationBar largeTitles (1b0fb9bead by @yogevbd)TextInput crash when inserting/removing lots of text (15dda0ab5a by @tido64)RCTUtilsUIOverride.h (b7e8f66795 by @Fanghao)RCTUIImageViewAnimated (12f8b2598f)frameInterval to preferredFramesPerSecond, fixing Xcode warnings (335f3aabe2 by @safaiyeh)contentOffset (ed29ba13f9 by @JoshuaGross)null contentOffset prop (9e85b7ad88 by @vonovak)KeyboardDidHide wrong screenY coordinates with windowTranslucentStatus=true (45954ac5dc by @fabriziobertoglio1987)RCTImageLoader not using decoders provided. (663b5a878b by @sjchmiela)Image.getSizeWithHeaders. (0bcc686c1c by @PaitoAnderson)@react-native-community/cli by bumping version (001eb7cbd6 by @alexbrazier)minPressDuration to Pressable. (4aaf629982 by @yungsters)target field of events is now a native component, not a react tag (3b813cade1 by @TheSavior)animated prop (deprecated in 0.26) (1e9db7bd6d by @TheSavior)Alert.prompt (deprecated in 0.59) (a26d622d04 by @TheSavior)thumbTintColor, tintColor, onTintColor props (deprecated in 0.57) (26912bd979 by @TheSavior)TextInputState. Use native component refs instead of react tags (6286270e4c by @TheSavior)Clipboard, SegmentedControlIOS, ProgressViewIOS, ProgressBarAndroid. These modules have been moved to react-native-community libraries. (f295d7f608 by @Naturalclar)console.disableYellowBox in favor of LogBox.ignoreAllLogs. (87f1e22434 by @rickhanlonii)UIManagerModule.resolveRootTagFromReactTag, this will not be supported in the next version of RN (acbf9e18ea by @mdvacca)ToolbarAndroid which has been removed from the core since 0.61. (6249d14a61 by @Naturalclar)nativePerformanceNow and performance.now() (232517a574 by @emilisb)PerformanceLogger stopTimespan updates (08c338eebf by @sahrens)PlatformColor implementations for iOS and Android (f4de45800f by @tom-un)<Pressable> Component to make it easier to create touchable elements (3212f7dfe8 by @TheSavior, bd3868643d by @vonovak)LogBox module (799bf56f6f by @rickhanlonii)LayoutAnimationConfig flow type (f0dafd34fe by @sahrens)react-native-community/eslint-plugin as a dependency for react-native-community/eslint-config (2c2e35c634 by @Naturalclar)DEBUG_NETWORK_SEND_DELAY can be used to simulate slow network. (4aac019176 by @sahrens)accessibilityLabel prop to the Picker component (0a525b6d9d by @KevinGVargas)zIndex to useNativeDriver (6a4e06faa8 by @mackenziemance)Picker (22eb711c84)TouchableNativeFeedback (7f2a79f40b by @vonovak)resizeMode prop support on TextInlineView (6871416328 by @mdvacca)TimingModule (22764e6cdc by @ejanzer)UIScene support for RCTImageView (f332fac163 by @tido64)RCTRootViewController and set UIViewControllerBasedStatusBarAppearance=YES (80e6d672f3 by @radex)userInterfaceStyle for ActionSheetIOS and Share to override user interface style on IOS 13 (0a9cc34dd8 by @Arjan-Zuidema)ReactCore pod (aebf54aee4 by @xuelgong)PushNotificationIOS.requestPermissions (edfdafc7a1 by @p-sun)Flipper to template app (52cd9cd6fe by @safaiyeh)textColor and backgroundColor props to SegmentedControl for iOS >=13 (e8f577e541 by @Naturalclar)RCTOverrideAppearancePreference to the iOS Appearance module (fa65b156d4)xib to storyboard (33b3a1a145 by @jeswinsimon)react-native-community/eslint-config to 1.1.0, adding the new color rule (780f06cd47 by @TheSavior)eslint-config and metro-preset in project template (ad86a18305 by @Naturalclar)DynamicColorIOS()and ColorAndroid() (602070f44b by @tom-un)ScrollView use forwardRef (d2f314af75 by @kacieb)RefreshControl's onRefresh flow typing (884c86ae02 by @vonovak)Animated (bdafc55f50 by @javache)eslint-plugin-relay to 1.6.0 (0483404d82 by @kassens)disableIntervalMomentum to work with both horizontal and vertical ScrollViews (6237cfb325 by @Shaninnik)JSCRuntime::createValue faster (24e0bad8be by @radex)XMLHttpRequest (71b8ececf9 by @sahrens)console.error calls, and uncaught exceptions are now displayed in the Metro logs as well (ffb82cb2f0 by @mweststrate)ImageEditor. (79efa43428 by @kitttn)ReactRootView if they've changed (cc3e27d484 by @ejanzer)ReactEditText extends AppCompatEditText (aaa2765a92 by @dulmandakh)ReactApplicationContext nullable as the constructor argument of ReactContextBaseJavaModule (f8d5c5bfd7 by @RSNara)Debug configuration (619d5d60df by @alloy)xcshareddata from .gitignore (7980615d37 by @pvinis)complete_nullability = True to compatible libraries (796a4ea7e3):configuration (7bb1c4e1b8 by @alloy)ImageProp (fbd09b1797 by @Naturalclar)Incremental component (e99800267b by @venits)lazilyLoadViewManagers (3963f34980 by @JoshuaGross)PickFirst options for RNTester and template (4bb0b4f205 by @passy)RCTConvert CoreLocation Libraries (bcf2a716fb by @maschad)textColor, font and textAlignment from RCTBackedTextInputViewProtocol, unifying the usage into defaultTextAttributes. (aff6bad27c by @jimmy623)<View> with no fixed size nested within a <Text> (dbb7eacb42 by @mdvacca)<Text><View><Image> would crash. (66601e755f by @TheSavior)setTextCursorDrawable API for Android 10 (e7a14b803f by @sturmen)Animated.Value initialized with undefined in ScrollView (cf02bd9b76 by @janicduplessis).js in Library imports (161b910494 by @NickGerleman)Pressability to properly fire onLongPress. (5ca1d8f260 by @yungsters)inly to only inside Modal.js library code. (686d8a57f8 by @Darking360)VirtualizedLists inside of a parent list's FooterComponent (074a2fab74 by @logandaniels)TextInput transitions (0a17a4fe56)shouldAnimate (3498b3b96b by @axe-fb)AccessibilityInfo.isScreenReaderEnabled mock in Jest setup (ec3327b61a by @rubennorte)YGValue.h compile with Clang on Windows (014bc95135 by @christophpurrer)Function::callWithThis method to accurately reflect how this is handled. (399bda5284 by @Kronopath)Blobs (9a8c06b502 by @RSNara)AnimatedEvent (19362f6116 by @javache)NativeJSCHeapCapture (7e3a43c23d by @RSNara)AnimationInterpolation as possible type for toValue (26e8870fbf by @nabati)StyleSheet.create (4e71a30969 by @jbrown215)CFBundleIdentifier to use PRODUCT_BUNDLE_IDENTIFIER (98ebc1ea25 by @MoOx)Error global is not callable when building an error, jsi will throw a JS exception back to JS code. #158 (a195447539 by @mhorowitz)onEndReached called on load when not needed (8ddf231306 by @sahrens)NativeJSDevSupport.onSuccess (b42371da5a by @RSNara)URLSearchParams and Headers to eslint globals (7a13a1a88f by @sonnyp)URL to eslint globals. (ff9def41ff by @sonnyp)LogBox - Fix dependency cycle (6ba2aeefa8 by @rickhanlonii)TextInput responds to requestFocus to fix a11y focus issue (d4a498aba2 by @ejanzer)TextInputTestCase (8c493804f3 by @ejanzer)TextInput autoFocus on Android (055a41b081 by @janicduplessis)Origin headers for Websockets (aeaf286c77 by @brunobar79)JSDevSupport from DebugCorePackage (c20963e11c by @RSNara)ServerHost is optional in NativePlatformConstants.js (048f88a33a by @RSNara)AppStateModule.sendEvent if CatalystInstance is not available (c4806fada6 by @JoshuaGross)Picker - fix types in AndroidDialogPickerManagerInterface (56b0f5cb6b)RCTDevLoadingView jank (faff19a7c6 by @RSNara)RCTBlobManager cleanup crash (91c5ff4a12 by @RSNara)NativeModule mutable (5290047d09 by @maschad)RCTCxxBridge.executeApplicationScript (0c2db3256f by @ahimberg)RCTDevLoadingView RedBox on reload (fe5ac2c3f9 by @RSNara)Image component crashing when uri is null (06b8b15b0a by @mlazari)RCTDevLoadingView not showing up with UIScene (74b667dbc2 by @tido64)requiresMainQueueSetup in RCTDevSettings.mm (adf87dd7ed by @logandaniels)React-RCTText Xcode warning (04fed6508b by @safaiyeh)React-cxxreact. (dc6c57ce0d by @safaiyeh)RCTReconnectingWebSocket is reconnecting infinitely when stopped before getting connected (0d4b0e9417)passwordRules in TextInput (3f5c42f357 by @Naturalclar)jsi::Functions when jsi::Runtime is deleted (9ae95582e7 by @RSNara)RCTImageLoader C++ requirement opt-in (25571ec452 by @alloy)RCTTextView layout issue that happens on some font with leading attribute not equal to zero, which causes wrong base-alignment layout (5d08aab526)<TextInput>'s selectOnFocus prop (e020576b34 by @shergin)RCTRedBox doesn't appear in apps implementing UISceneDelegate (d0a32c2011 by @tido64)InputAccessoryView.backgroundColor prop’s typing to use ColorValue. (a43fd60e18 by @alloy)Animated image crash when CADisplayLink target in RCTWeakProxy is nil (e5a6655e71 by @p-sun)Modal’s onDismiss prop. (27a3248a3b by @grabbou)This major release includes Flipper support by default, improved dark mode support, moving Apple TV to react-native-tvos, and more. See the blog post for all of the highlights.
This release comes in the midst of a global pandemic. We’re releasing this version today to respect the work of hundreds of contributors who made this release possible and to prevent the release from falling too far behind master. Please be mindful of the reduced capacity of contributors to help with issues and prepare to delay upgrading if necessary.
If you're upgrading, manual intervention may be required for your app. Please see the upgrade-helper for a detailed breakdown of the changes required and see this issue for known issues.
One known issue with workaround is regarding Android builds and APK size increases.
TextInput's onTextInput prop (3f7e0a2c96 by @shergin)TextInput's inputView prop (1804e7cbea by @TheSavior)defaultProps Parameter (a70987cee2 by @yungsters)TextInput's selectionState prop (2becdfd404 by @yungsters)framesToPop (8bc02fdd52 cf4d45ec2b a483f802fd by @motiz88)TimePickerAndroid (dbf070c51e by @cpojer)scrollWithoutAnimationTo from ScrollView (c7e89909da by @TheSavior)accessibilityStates property (7b35f427fd by @marcmulcahy)proguard-rules.pro: -keep class com.facebook.jni.** { *; } (ab3c184555 by @willholen)getNativeScrollRef method to FlatList component (bde1d63c85 by @kacieb)console polyfills in release builds. (b7ab922bb3 by @yungsters)addMenuItem method (cc068b0551 by @janicduplessis)useColorScheme hook (51681e80ab by @hramos)unstable_enableLogBox (dd8e5f468a by @rickhanlonii)error-subclass-name lint rule (6611c4b8f4 by @motiz88)HostComponent to the public API of React Native (a446a38aaa by @TheSavior)RCTExceptionsManager.reportException (9a57145f52 by @motiz88)accessibilityValue property (7df3eea1a7 by @marcmulcahy)Appearance module to expose the user's current Night theme preference (17862a78db 63fa3f21c5 by @hramos)onSlidingComplete callbacks when sliders adjusted via a11y. (c7aa6dc827 by @marcmulcahy)adjustsFontSizeToFit on Android (2c1913f0b3 by @janicduplessis)EditText construction in ReactTextInputShadowNode (a5b5d1a805 by @mchowning)fontVariant prop (c2c4b43dfe by @mcuelenaere)ENTRY_FILE environment variable (a0d8740878)statusBarTranslucent prop to Modal component (c35a419e5d by @pfulop)fadingEdgeLength prop to FlatList and ScrollView (51aacd5241)removeClippedSubviews for horizontal ScrollViews (42152a3fa3)ReactCallerContextFactory interface (9713b63d9a by @mdvacca)isPackagerRunning methods on RCTBundleURLProvider (fe9cba74fa by @afoxman)autoFocus to TextInput (6adba409e6 by @janicduplessis)eslint-plugin-relay to 1.3.12 (f0bcfbe9be by @jstejada)forwardRef allowing it to be used directly by new APIs requiring a host component. (bbc5c35a61 by @TheSavior)no-useless-escape lint rule (90977b0e00 by @motiz88)DevSettings.reload to accept a reason (549cac63cb by @rickhanlonii)react-native-implementation.js to index.js (e54ecf907e by @cpojer)accessibilityRole of Switch component from button to switch (36672c3851 by @alvinmatias69)addCookies method (cc845ccfb4 by @safaiyeh)ACCESS_BACKGROUND_LOCATION to PermissionsAndroid (8c099b5f53 by @dulmandakh)xcscheme files for iOS template back in. (a715decd2d by @pvinis)AccessibilityInfo.fetch (523ab83338 by @TheSavior)useNativeDriver required. Add runtime warning if not specified (5876052615 by @TheSavior)getNode call has been deprecated. (66e72bb4e0 by @yungsters)[bridge reload], prefer RCTReloadCommand (ffe2306164 by @PeteTheHeat)CallerContext from ReactImageManager (8accd77c45 by @mdvacca)IncrementalPresenter component (0ef0d3167e by @TheSavior)Sample and CrashyCrash Modules (8ec7e0966c by @RSNara)propTypes from Animated components. (86d90c03eb by @yungsters)propTypes from TouchableHighlight. (7c01172bef by @yungsters)propTypes from TouchableNativeFeedback. (2185dd298a by @yungsters)propTypes from TouchableOpacity. (88ae24f719 by @yungsters)propTypes from TouchableWithoutFeedback. (ebf7d75816 by @yungsters)__skipSetNativeProps_FOR_TESTS_ONLY from Animated components. (dcd63078bd by @yungsters)NativeRunnableDeprecated (973253af8a by @passy)com.facebook.react.modules.debug.NativeSourceCodeSpec (4d9e5f8481 by @RSNara)require cycle warning in ScrollResponder. (674ac69cee by @Naturalclar)underlayColor={null} in TouchableHighlight. (37d8440a8e by @yungsters)requestAnimationFrame when focusing input on mount (5798cf2aa9 by @janicduplessis)JSBigString not compiling on Windows due to Unix-specific headers (80857f295c by @empyrical)scrollResponderScrollNativeHandleToKeyboard when ref is null (da8ae011bb by @TheSavior)URL. Add missing / between url (20ab946f34 by @jeswinsimon)ATOMIC_VAR_INIT macro from code with systrace enabled (75a7a52db4)useWindowDimensions hook firing continuously after dimensions change (3b3c95b017 by @dulmandakh)TimingAnimation rounding error issue (77b6e26538 by @MartinSherburn)Platform.isTesting() behavior (1fbc6a7c17 by @PeteTheHeat)includeFontPadding for TextInput placeholder (211ea485cd by @janicduplessis)TextInput.FontVariant prop in Android API level < 26 (e885ddedb9 by @mdvacca)onRequestClose in Modal on iOS 13+ (8e5fac89bb by @koke)Dimensions module to update on initial split screen (7a72c35a20 by @sahrens)beginRefreshingProgrammatically (e341489521 by @nnabinh)Share.share(content, options) not resolving if share dialog dismissed (7468a6c903 by @v-fernandez)cropData struct arg in ImageEditingManager.cropImage call (002d3c179d by @RSNara))tintColor in SegmentedControlIOS component (be89e4d928 by @sammy-SC)This is a patch release that consist of a few commits requested in the dedicated conversation to improve the quality of the 0.61 release. Thanks to everyone who contributed!
set-cookie not aggregated correctly in response headers (1df8bd4932 by Vincent Cheung)This is a patch release that consist of a few commits requested in the dedicated conversation to improve the quality of the 0.61 release. Thanks to everyone who contributed!
This is a patch release that consist of a few commits requested in the dedicated conversation to improve the quality of the 0.61 release. Thanks to everyone who contributed!
This is a patch release that consist of a few commits requested in the dedicated conversation to improve the quality of the 0.61 release. Thanks to everyone who contributed!
warnOnce for excessive number of callbacks error (0cafa0f5d1 by @janicduplessis)StatusBar API (796b3a1f88 by @gaodeng)This is a patch release that consist of a few commits requested in the dedicated conversation to improve the quality of the 0.60 release. Thanks to everyone who contributed!
This is a major release that includes the new reloading experience Fast Refresh. It also removes the React .xcodeproj, fixes use_frameworks! for CocoaPods support, adds a useWindowDimensions hook, and upgrades to React 16.9.
useWindowDimensions hook to replace most Dimensions usage (103ec2f770 by @sahrens)debug.keystore to the android template. (d55025694b by @bondehagen)module.name_mapper in template .flowconfig (e6b2cf0418 by @MoOx)JSON.stringify in console.log if Symbol is unavailable (179889704b by @cpojer)This is a small patch release with a commit to fix the build break in MSVC to help the users of react-native-windows. (9833ee7bc1 by @acoates-ms)
This is a patch release that consist of a few commits requested in the dedicated conversation to improve the quality of the 0.60 release. Thanks to everyone who contributed!
ClassNotFound exception in Android during Release builds (ffdf3f22c6 by @thecodrr)You can participate to the conversation for the next patch release in the dedicated issue.
This is a patch release that contains two more Hermes related fixes, thanks to the contributors for helping improving the support!
You can participate to the conversation for the next patch release in the dedicated issue.
This is a patch release that fixes the binary path to Hermes package, thanks to @zoontek) for creating the PR!
You can participate to the conversation for the next patch release in the dedicated issue.
This is a patch release that fixes the path to Hermes package.
You can participate to the conversation for the next patch release in the dedicated issue.
This is a patch release that includes the Hermes JavaScript Engine announced at Chain React Conf 2019.
Check out the documentation to opt-in and give Hermes a try.
You can participate to the conversation for the next patch release in the dedicated issue.
This feature release of React Native includes many milestone changes for the platform. Please refer to the blog post for selected details. For upgrading users, some of the progress comes with breaking changes; manual intervention may be required for your app. We're also aware that existing CocoaPods integrations using use_frameworks are not out-of-the-box compatible with this version, but please consider various workarounds while we prepare a long-term solution for a future release. If you're interested in helping evaluate our next release (0.61), subscribe to the dedicated issue here.
Have you ever considered contributing to React Native itself? Be sure to check out Contributing to React Native.
isReduceMotionEnabled() plus reduceMotionChanged to AccessibilityInfo (0090ab32c2 by @estevaolucas])AbortController (h5e36b0c by @janicduplessis)touchSoundDisabled prop to Button, Touchable, and TouchableWithoutFeedback (45e77c8324 by @yurykorzun)announceForAccessibility and announcementFinished APIs for making screen reader announcements (cfe003238a by @rigdern)allowsCellularAccess property. This can ensure that network requests are sent over WiFi if communicating with a local hardware device and is accomplished by setting a flag. Default behavior of allowing network connections over cellular networks when available is unchanged. (01c70f2fb9 and 916186a7e6 by @bondparkerbondand @zhongwuzw)$RN_CACHE_DIR can now be used to manually specify the iOS build cache directory (845eee403e by @hramos)scrollEventThrottle value to Animated.FlatList and Animated.SectionList; this now behaves consistently with Animated.ScrollView (933e65e245 by @janicduplessis)keyExtractor now checks item.id and item.key (de0d7cfb79 by @sahrens)scrollToLocation on iOS now counts itemIndex like Android; both platforms are now consistent, and the itemIndex value 0 now represents scrolling to the first heading (248a108abf by @vonovak)react is now at v16.8.6 (53cec2dc1f, ee681b72ce, and 6001acb319 by @kelset, @mdvacca, @gaearon)react-native-community/cli is now at v2.0.0 (by @thymikee)flow is now at v0.98 (0e1dfd4369 by @nmote)prettier is now at v1.17.0 (ff9f8f347d)metro packages are now at v0.54.1 (7ff3874ec0, 343f0a1d50 by @motiz88)PARTIAL_WAKE_LOCK tag (88dbb4558c by @timwangdev)onSlidingComplete event to a non-bubbling event on iOS to match Android (7927437a6d by @rickhanlonii)Animated.Value value after animation if component was re-mounted (b3f7d53b87 by @michalchudziak)fetch (05baf62721 and 9ef5107d04 by @janicduplessis)scrollToLocation now scrolls to the top of the sticky header as expected (d376a444e3 by @danilobuerger)onValueChange on initialization; now it is only called when selectedValue changes (82148da667 by @a-c-sreedhar-reddy)onKeyPress method when the user types an emoji (a5c57b4ed4)onSelectionChange start and end arguments by normalizing them (2ad3bb2e2d by @uqmessias)Linking.getInitialURL method, use the InteractionManager to wait for the current activity to finish initializing (c802d0b757 by @mu29)onSelectionChange behavior in single line text inputs (0c11d8d9b4 by @zhongwuzw)renderingMode not applied to GIF Images (75380aa329 by @zhongwuzw)centerContent not work in some cases (2cdf9694b5 by @zhongwuzw)code and reason arguments being ignored when calling WebSocket.close (0ac2171c54 by @jeanregisser)Linking.openURL() (4a5d0bdbd7 by @thib92)nil instead of @"" (d4ff5ed258 by @sammy-SC)This is likely the last patch release for version 59 of React Native for the foreseeable future: it contains an important Android side update for the JavaScript Core, to prevent a great number of crashes mostly related to Samsung devices - thanks to @Kudo for his work on fixing this via 557989a86f!
Thanks everyone who participated in the discussion.
This is a patch fix release addressing a couple ScrollView regressions, and "future-proof" RN 59 from crashes caused by upgrading Gradle (now can support up to 5.4.1 & 3.4.0 for the plugin) and Xcode 11 Beta 1. You can upgrade to this version without upgrading your tooling.
Thanks everyone who contributed code or participated in the discussion for cherry-picking commits. You can participate to the conversation for the next patch release in the dedicated issue.
If isInteraction is not specified in the config, it would always default to true which would block interactions like VirtualizedList updates. This is generally not what you want with useNativeDriver since the animation won't be interrupted by JS. If something does end up interfering with an animation and causes frame drops, isInteraction can be set manually. (8f186b84ae by @sahrens)
Update detox to match master (c6a5c09e2b by @kelset)
This is a patch fix release addressing regressions, crashes, and a few developer-experience pain points (in particular, check the KeyboardAvoidingView change). Thanks everyone who contributed code or participated in the discussion for cherry-picking commits.
hasteImpl (bcd1e2 by @CaptainNic)EventEmitter#listeners() (f68dc8 by @ide)_updateViewableItems immediately (08141e by @sahrens)_scrollAnimatedValue offset of ScrollView (e0d1b3 by @miyabi)setState in VirtualizedList (c40a93 by @sahrens)text Offset is {0,0} (17a81b by @Woodpav)UnknownCppException (84e263)MissingWebViewPackageException (379874 by @thorbenprimke)behavior="height" resize on keyboard close (7140a7 by @WaldoJeffers)This patch release was unpublished.
This patch release was unpublished.
This is a patch fix release addressing regressions, crashes, and a few developer-experience pain points. Thanks everyone who contributed code or participated in the discussion for cherry-picking commits.
NoSuchKeyException when parsing JS stack frames without line numbers (d7bd6c by @Salakar)mostRecentEventCount is not updated (b8aac0 by @jainkuniya)This is a patch fix release addressing regressions, crashes, and a few developer-experience pain points. Thanks everyone who contributed code or participated in the discussion for cherry-picking commits.
scrollToOverflowEnabled prop to ScrollView (6f4239b37c by @mysport12)underlineColorAndroid in TextInput (556aa93ed7 by @sunnylqm)This is a patch fix release addressing regressions, crashes, and a few developer-experience pain points. Thanks everyone who contributed code or participated in the discussion for cherry-picking commits.
maxLength when inserting characters at begin (17415938c7 by @zhongwuzw)RCT_EXTERN_MODULE for swift classes (ff66600224)This is a patch fix release addressing regressions, crashes, and a few developer-experience pain points. Thanks everyone who contributed code or participated in the discussion for cherry-picking commits.
trackColor being reset when toggled (7652e31d8c and d6ee448e15 by @dulmandakh and @ejanzer)implementation('org.conscrypt:conscrypt-android:2.0.0') to build.gradle (75af15ede4 by @dulmandakh)This is a small patch release that addresses two critical issues from the 0.59.0 release.
Welcome to release 0.59 of React Native! For highlights of this release, please view the dedicated blog post. Thanks to those who gave feedback during the release candidate phase. If you're interested in helping evaluate our next release (0.60), subscribe to the dedicated issue here.
getPhotos now supports assetType: "All" to let users pick from video and photos simultaneously (54534e79d7 by @kesha-antonov)textAlign:justify for android O+ (api level >=26) (d2153fc58d by sunnylqm)rejectResponderTermination to enable TextInputs inside Swipeables to function properly (11df0eae5f by @cmcewen)destructiveButtonIndexes for an Array<number> of destructive indexes (67e7f16944 by @sdg9)isEventFromThisApp to KeyboardEvent notifications to disambiguate keyboard events when apps are running side-by-side (05f35c296d by @nossbigg)react-native-xcode.sh using env var PROJECT_ROOT (9ccde378b6 by @janicduplessis)React is now at v16.8.3 (ccefc700d0 and (2af13b4477 by @cpojer and @hramos)Flow dependency is now at v0.92.0 (5ee738659b by @pakoito)@react-native-community/cli dependency is at v1.2.1 (a252aee2ea and 5e1504b0fc by @grabbou)react-native start rather than react-native bundle (46aaa02274 by @sunnylqm)OkHttpClientProvider.replaceOkHttpClient method; please use OkHttpClientProvider.setOkHttpClientFactory from 0.54+ (7cbdd7b6ac by @cdlewis)ViewHelper, use ViewCompat instead; this may also require changing the android:theme to be from Theme.AppCompat; read more about it in the blog post (c493cfe708 by @dulmandakh)ReadableMap, WritableMap, ReadableArray, Writable, ReactPackage, and native module interfaces; this may impact Kotlin usage (b640b6faf7, c93cbdf1b2, 7b33d6b0b9, and 84f40da990 by @dulmandakh)Soloader is now at v0.6.0 (07d1075f37 by @dulmandakh)v28.0.0 (5bbed43854 by @dulmandakh)targetSdkVersion is now at v28 (57f444bd8a by @dulmandakh)v3.3.1 (da5b5d2fa1 by @dulmandakh)buildToolsVersion to build.gradle (cf52ab561d by @dulmandakh)ReactActivity, ReactSlider, ReactTextView, and ReactPicker extends AppCompatActivity; updates to TimePickerDialogModule and DatePickerDialogModule as well (dda2b82a0a, 3b9604feda, ba0c3ffd5b, 833429dd63, adc1410572, c6c5a173bc, and be361d0fc1 by @dulmandakh)SYSTEM_ALERT_WINDOW permissions available only in debug builds (84a2fb0a4a by @dulmandakh)removeClippedSubviews default to true on Android (1a499f43b2 by @fred2028)~/.rncache to ~/Library/Caches/com.facebook.ReactNativeBuild (1024dc251e by @sryze)The following deprecations are part of our Lean Core initiative; read more about it in the blog post.
expo-file-system and react-native-fs (62599fa8ff by @EvanBacon)stringByReplacingPercentEscapesUsingEncoding: with stringByAddingPercentEncodingWithAllowedCharacters: (61ca119650 by @pvinis)react-native-git-upgrade is now officially dead; use react-native upgrade instead (which uses rn-diff-purge under the covers) (a6bdacb257 by @cpojer)Map and Set polyfills no longer reject non-extensible object keys; also fix hash collision scenario (90850cace9 by @benjamn)yarn test in new projects (5218932b13 by @Esemesek)getInspectorDataForViewTag that caused red screen when toggling inspector (46f3285a3f by @TranLuongTuanAnh)displayName for Image; this will make tests no longer mistake it as Component (4989123f8c by @linnett)wait_for_recheck=true to work around crash in Flow (ffc9908bef by @gabelevi)jest and jest-junit to be only development dependencies (c7b57f1986 by @vovkasm)onError callback (7795a672d3 by @Jyrno42)useNativeDriver (e405e84fc3 by @scisci)SystemUiVisibility flags (8afa0378cd by @rogerkerse)fetch() POST requests from appending charset=utf-8 to Content-Type header (4a807761a4 and 0d5aebbd9a by @nhunzaker)setAttributedText for CJK languages on single-line text fields (e38be82dfa by @mandrigin)scrollEnabled used in singleline textinput (9ff43abe65 by @zhongwuzw)DoubleConversion and glog to cxxreact, jsi and jsiexecutor subspecs in React.podspec file (00392ac46b by @alexruperez)secureTextEntry cursor spacing (8ce3c1b43e by @ericlewis)This release is fairly small, as we approach stable status for 0.59.
Thanks everyone who contributed code or participated in the discussion for cherry-picking commits - you can participate in the decision process for the next patch release here.
This release resolves a few bugs and includes a few improvements, listed below.
Thanks everyone who contributed code or participated in the discussion for cherry-picking commits - you can participate in the decision process for the next patch release here.
This release resolves a few bugs and includes a few improvements, listed below.
Thanks everyone who contributed code or participated in the discussion for cherry-picking commits - you can participate in the decision process for the next patch release here.
0.6.0 (07d1075f37 by @dulmandakh)This release resolves a regression in StatusBar using these fixes.
Thanks everyone who contributed code or participated in the discussion for cherry-picking commits - you can participate in the decision process for the next patch release here.
This release fixes an issue caused by a wrongly reverted merge commit, that caused a short timeframe of commits to not actually be in the original 0.58.0. Those commits have been added to the 0.58 changelog below, as many are intertwined with the original work.
Thanks everyone who contributed code or participated in the discussion for cherry-picking commits - you can participate in the decision process for the next patch release here.
There were some regressions with developer tools that prevented react-native run-ios from working properly in 0.58.0; this patch fix addresses that.
Thanks everyone who contributed code or participated in the discussion for cherry-picking commits - you can participate to the decision process for the next patch release here.
Welcome to first stable release of React Native of 2019! There are a number of significant changes in this version, and we'd like to especially draw your attention to them:
ScrollView, CameraRollView, and SwipeableRow that make it no longer bound to the component instance in certain methods/assetsAside from those:
if you are an iOS developer, you'll need to manually link JavaScriptCore.framework when upgrading; this can be done via Xcode, and following the steps shown here.
Android developers, please note that Android's target SDK 27 is supported. Work is still underway to land target SDK 28 support, and it will come soon.
Thanks to those who gave feedback during the release candidate phase. If you're interested in helping evaluate our next release (0.59), subscribe to the dedicated issue here.
publicPath to enable serving static assets from different locations (0b314960aa by @gdborton)bounce() function that can be used to trigger a bounce without callbacks (7fe3f90156)adb shell setprop metro.host (e02a154787 by @stepanhruda)WritableMap arg for extra properties (userInfo). See the interface defined in Promise.java for available methods. This is accessible in JavaScript as Error.userInfo. This is to match iOS's existing Error.userInfo behavior. See PR for examples. (#20940 by @Salakar)nativeStackAndroid property to promises rejected with an Exception/Throwable - making native error stacks available inside Javascript: Error.nativeStackAndroid. This is to match iOS's existing Error.nativeStackIOS support. See PR for examples. (#20940 by @Salakar)moduleForName: lazilyLoadIfNecessary to RCTBridge.h to lookup modules by name and force load them, plus various improvements to LazyLoading (d7a0c44590, 6534718a18, d7865ebde8, 04ea9762e2, 1f394fa673, 80f92adf1f, and 81b74ec1ed by @dshahidehpour, @fkgozali, and @mmmulani)setClientAuthenticationCredential when useWebKit={true} for mutual TLS authentication (8911353c47 and 8911353c47 by @mjhu)v0.85.0 (adc8a33fcf by @samwgoldman)v0.49.1 (f867db366a, 88882951e1, 31bb551e75, de60e8643a, and de60e8643a by @alexkirsz and @rafeca)v24.0.0-alpha.6 (1b4fd64325, 66aba09251, and 06c13b3e06 by @rafeca and @rubennorte)v1.0.0 (#21880) (cdbf719307 by @jmheik)v2018.10.22.00 (a316dc6ec3, 287934dba9, and a70625abd7 by @Kudo and @radko93)16.6.3 now via sync for revisions 4773fdf...6bf5e85 (0cb59b5c23 and 073ad6a036 by @yungsters)ScrollView, the affected methods are setNativeProps, getScrollResponder, getScrollableNode, getInnerViewNode, scrollTo, scrollToEnd, scrollWithoutAnimationTo, and flashScrollIndicators. For CameraRollView, the affected methods are: rendererChanged. For SwipeableRow, the affected methods are: close. Therefore, it is no longer safe to pass these method by reference as callbacks to functions. Auto-binding methods to component instances was a behaviour of createReactClass that we decided to not preserve when switching over to ES6 classes. (you can refer to this example)Native Modules in Android now require @ReactModule annotations to access .getNativeModule method on the ReactContext. This is how your updated Native Module should look like:
// CustomModule.java
// ...
+ import com.facebook.react.module.annotations.ReactModule;
+ @ReactModule(name="CustomBridge")
public class CustomModule extends ReactContextBaseJavaModule {
// ...
@Override
public String getName() {
return "CustomBridge";
}
// ...
}PlatformConstants.ServerHost, PlatformConstants.isTesting, and PlatformConstants.androidID for performance (2bf0d54f15, 339d9d3afb, and 9f9390ddfc by @stepanhruda, @fkgozali, and @axe-fb)UIManager.measureViewsInRect() (d6236796b2 by @shergin)react-native init --help so that it doesn't return undefined (58732a88b6 by @ignacioola)react-native --sourceExts (ce860803a4 by @elyalvarado)visible prop is undefined or null (cc13a7367b by @MateusAndrade)setStyleAttributePreprocessor (04085337bc by @brentvatne)Image.resizeMode isn't respected while source is loading, resulting in unexpected padding (673ef39561 by @dulmandakh)resizeMode for defaultSource images rather than showing padding while loading (673ef39561 by @dulmandakh)It is possible that you'll face an AAPT error regarding missing resources, here is an example of this error, in this case, you should try to update the build tools versions to buildToolsVersion = "28.0.2" in your android/build.gradle file. If you maintain a react-native library which uses native code you should avoid using hardcoded versions of the build tools and use the packaged version numbers, here is an example you can follow
NOTE WELL: when you upgrade to this version you NEED to upgrade react and react-test-renderer to version "16.6.3".
Thanks everyone who contributed code or participated in the discussion for cherry-picking commits - you can participate to the decision process for the next release here.
RCTFatalException (#22532) (2831d9ef61 by @zackzachariah)-[UITextView setAttributedString:] while user is typing (#19809) (f77aa4eb45)NOTE WELL: when you upgrade to this version you NEED to upgrade react and react-test-renderer to version "16.6.1".
This patch release fixes version 0.57.6 about losing focus in TextInput because of ada7089066.
Thanks everyone who contributed code or participated in the discussion for cherry-picking commits.
INFO NOTE: It's highly recommended that you skip this version and upgrade to 0.57.7.
NOTE WELL: when you upgrade to this version you NEED to upgrade react and react-test-renderer to version "16.6.1".
This patch release fixes a number of crashes, resolves build issues (both for iOS and Android). Thanks everyone who contributed code or participated in the discussion for cherry-picking commits.
visible prop check to handle undefined and null (#22072) (cc13a7367b by @MateusAndrade)NOTE WELL: when you upgrade to this version you NEED to upgrade react and react-test-renderer to version "16.6.1".
This patch release fixes a number of crashes, resolves build issues (both for iOS and Android), and brings React to v16.6.1. Thanks everyone who contributed code or participated in the discussion for cherry-picking commits.
displayName (7a914fcef4 and 53da585832 by @rajivshah3 and others)$NODE_BINARY contains spaces (7d4e94edcc by @sundbry)NOTE WELL: when you upgrade to this version you NEED to upgrade react and react-test-renderer to version "16.6.0-alpha.8af6728" (next version, 0.57.5, will update to 16.6.0, and it will come soon). Also, please check the Known issues section below, especially if you are using Xcode 10.
Thanks to everyone that contributed to the discussion for cherry-picking the commits that landed in this release, and the developers who submitted those commits!
<Text> metrics in onTextLayout events (737f93705c by @mmmulani)There are a few issues that don't have a finalized solution (as it happens for 0.x projects). In particular:
when using Xcode 10 and react-native init, your build may fail due to third-party build steps (#20774). There is a commit we are planning to cherry pick in a future release that should help - in the meantime, you should be able to run these commands from the project folder to fix the issue (you should need to do it only once per project):
cd node_modules/react-native
scripts/ios-install-third-party.sh
cd third-party/glog-0.3.5/
../../scripts/ios-configure-glog.shReact 16.6.0 works for the most part, aside from the Context API (check this issue) - and if you are eager to test the new React Hooks you will have to be patient, as they are not production ready and 16.7.alpha is not yet supported by React Native.
NOTE WELL: when you upgrade to this version you NEED to upgrade react and react-test-renderer to version "16.6.0-alpha.8af6728". Also, please check the Known issues section below, especially if you are using Xcode 10.
Thanks to everyone that contributed to the discussion for cherry-picking the commits that landed in this release, and the developers who submitted those commits!
There are a few issues that don't have a finalized solution. In particular, when using Xcode 10 and react-native init, your build may fail due to third-party build steps (#20774). There is an open pull request which we are testing and hope to land soon (#21458). In the meantime, you can find a workaround here: https://github.com/facebook/react-native/issues/20774.
Thanks to everyone that contributed to the discussion for cherry-picking the commits that landed in this release, and the developers who submitted those commits!
overflow: scroll (201f2f189f by @mcolotto)overflow: visible (4af4da9089 by @olegbl)Invalid response for blob (7e9c3f77cc by @anthonyhumphreys)We are trying, for 0.57, to approach it as a version with a longer "support", while waiting for some features to land that will allow for 0.58 to be cut.
Thanks to everyone that contributed to the discussion for cherry-picking the commits that landed in this release, and the developers who submitted those commits!
@Scoped modules (4b106be477 by empyrical)Welcome to the 0.57 release of React Native! This release addresses a number of issues and has some exciting improvements. We again skipped a monthly release, focused on quality by extending the release candidate phase, and let some upstream packages reach stable for inclusion.
This release includes 599 commits by 73 different contributors! In response to feedback, we've prepared a changelog that contains only user-impacting changes. Please share your input and let us know how we can make this even more useful, and as always let us know if you have any feedback on this process.
WKWebView can now be used within the WebView component; read more at @rsnara's awesome blog postAs mentioned a few times in the past, the core team is reviewing the repository to trim it to the base React Native features in order to make the whole ecosystem more maintainable (by using a divide-et-impera approach, the community will move faster and enable pull requests to be reviewed and merged quicker). This change requires extracting some components into their own separate repos and removing old, unused code (details here).
0.57 is not directly affected by any changes, but we want you to know that:
WebView will be moved to its own repo at react-native-community/react-native-webview. There is already a base implementation there. Help us out by giving that a try, and expect that WebView will be deprecated soonNavigatorIOS will be fully removed from the main codebase starting 0.58.0 (via this commit); it is now deprecatedpackage.json from 0.56.0 to 0.57.0, and the React version to 16.5Change the babel-preset dependency from "babel-preset-react-native": "^5", to "metro-react-native-babel-preset": "^0.45.0",, then change the .babelrc configuration to:
{
"presets": ["module:metro-react-native-babel-preset"]
}Ensure that you have all the babel dependencies to version ^7.0.0 (you may also need to add "babel-core": "7.0.0-bridge.0" as a yarn resolution to ensure retro-compatibility). The Babel team has released a tool, babel-upgrade, that should help you in this migration.
android/gradle/wrapper/gradle-wrapper.properties file, change the distributionUrl to https\://services.gradle.org/distributions/gradle-4.4-all.zipandroid/build.gradle file add google() right above jcenter() in both buildscript and allprojects repositories. Then change Android build tools to version 3.1.4 classpath 'com.android.tools.build:gradle:3.1.4'android/app/build.gradle file update all your compile statements to be implementation, e.g. implementation 'com.facebook.fresco:animated-gif:1.10.0'Missing Byte Code errors. This is due to a known issue with version 3.1.x of the android tools plugin. You'll need to disable Instant Run to get past this error.If you have a custom packager configuration via rn-cli.config.js, you probably need to update it to work with the updated Metro configuration structure (for full detail refer to Metro's documentation); here are some commonly encountered changes to rn-cli.config.js:
-const blacklist = require('metro/src/blacklist')
+const blacklist = require('metro-config/src/defaults/blacklist')
// ...
module.exports = {
+ watchFolders: alternateRoots,
+ resolver: {
+ blacklistRE: blacklist
+ },
+ transformer: {
+ babelTransformerPath: require.resolve('./scripts/transformer.js'),
+ },
- getProjectRoots() {
- return [
- path.resolve(__dirname),
- ].concat(alternateRoots)
- },
- getBlacklistRE() {
- return blacklist;
- },
- transformModulePath: require.resolve('./scripts/transformer.js'),
}Run yarn to ensure that all the new dependencies have been installed
YogaNodeProperties implementation based on ByteBuffer (0c97e75dfe and 23657ccf5b by @davidaurelio)FlatList and SectionList to Animated exports (daa7c78055 by @yunyu)FlatList/VirtualizedList for ListHeaderComponent and ListFooterComponent (a2675ced4e)haste field in package.json; read more in the docs entry (03476a225e by @empyrical)snapToOffsets to ScrollView and made a number of fixes to snapToInterval as well (fd744dd56c by @olegbl)AccessibilityInfo.setAccessibilityFocus for Android (be715ec705 by @draperunner)overflow style property (b81c8b51fc and bbdc12eda7by @yungsters)WebView can now use WKWebView internally if you pass useWebKit={true} (7062e5bdb5, 1442c265da, 3703927e7e, 7a6dd9807c, e5f95aba9b, 1741fe9571, 90e85a4adc, 0022354525, 03b57d9db6, 1584108805, a997c0ac16, 4ca949b46e, 721763020a, 1af17f1648, 215fa14efc, bacfd92976, 95801f1eda, b18fddadfe, 28b058c341, and 78fcf7c559 by @rsnara)accessibilityHint for iOS (253b29dbd8 by @draperunner)unbundle is now ram-bundle (ebf5aeab28 by @jeanlauliac)StyleSheet.compose Flow Type (50a481d23a by @yungsters)react-native-dom in haste/cli config defaults (c4bcca6685 by @vincentriemer)metro.config.js settings (c5297c75cb by @rozele)blur, focus, measure, measureInWindow, measureLayout, setNativeProps) are no longer bound to the image component instance. Therefore, it is unsafe to pass these methods by reference (i.e: as callbacks) to functions. So, things like setTimeout(this._imgRef.focus, 1000) will no longer work. Please instead do: setTimout(() => this._imgRef.focus(), 1000).Image source without a uri now returns null (28c7ccf785 by @himabindugadupudi)targetSdkVersion is 26 (bfb68c09ee by @dulmandakh)TextInputState's currentlyFocusedField() (b4b594cec1 by @janicduplessis)<VirtualizedList> fix for jumpy content when initialScrollIndex specified (e0c73633cf by @rbrosboel)flexGrow and flexShrink set to 0 except for one (90a408ea6f by @priteshrnandgaonkar)react-native-windows in hasteImpl accepted paths (54942746d4 by @rubennorte)Animated (db2159d0b3 by @yunyu)<TextInput> slowness (5017b86b52 by @gnprice)<TextInput> placeholder not being completely visible (84022321c4 and 86f24ccf71 by @jainkuniya)<ScrollView>'s scroll position during layout changes with RTL content (de573277bf)<ScrollView> overflow issue (d5465a9a0a)TextInput.clear() and TextInput.setNativeProps({text: ''}) to work (2307ea60d0 by @magicien)<TextInput> on iOS when inputting in Chinese/Japanese (892212bad2 by @mmmulani)<ScrollView> bug encountered with brownfield apps (fab5fffbb3 by @PeteTheHeat)<PickerIOS> (e592d6f8c7 by @VSchlattinger)undefined_arch error received when building in Xcode 10 beta (e131fffb37 by @futuun)ScrollView.propTypes; use flow or typescript for verifying correct prop usage instead (5b6ff01764 by @sahrens)ReactInstancePackage is now deprecated; use @link ReactPackage or @link LazyReactPackage (b938cd524a by @axe-fb)Welcome to the June 2018 release of React Native! Over 60 contributors made 821 commits since March - and we are extremely grateful to every single one of you.
As you'll see in a second, this new version has some important breaking changes that required a lot of extra efforts to bring to a stable 0.56. This was the main reason behind skipping April and May from the monthly release cycle, but looking forward we are planning on going back to do a rollout every month.
When upgrading to 0.56, make sure to bump your babel-preset-react-native package.json dependency to 5.0.2 or newer (but still as fixed value).
React Native library authors will need to update their libraries to make use of the updated Babel preset as Babel 7 is not backwards compatible.
If you have issues upgrading to Babel 7, please double check the related documentation, in particular the sections related to Package Renames and Scoped Packages.
The babel-bridge library may be used if you need to use libraries that have not yet upgraded to Babel 7. You may also enforce the Babel 7 dependency via tools like yarn resolutions. Overall, you need to ensure all the @babel/* deps are fixed at version 7.0.0-beta.47.
Trailing commas are now allowed.
Any device that can run iOS 8, can upgrade to iOS 9. Developers who support iOS 8 in their apps may continue doing so as this is a Xcode-level setting (IPHONEOS_DEPLOYMENT_TARGET).
We recommend using Xcode 9.4 as that is what we use to run our tests.
The target API level is left unchanged in this release.
Starting August 2018, new apps submitted to the Play Store will need to target API 26 as a minimum. You can now opt your project in to use API 26 (or newer) as the target. Please let us know about any issues, as we'd like to finalize support for Android API 26 by the time 0.57.0 is released.
WebView will only load http(s) URLs by defaultGeolocation is disabled by default.
<Text><View /></Text>Removes a pitfall that people may run into when releasing an app for Android if the bulk of the testing has been performed on iOS only. Nesting a <View> within a <Text> component (e.g. <Text><View /></Text>) is unsupported on Android, but using this pattern on iOS has not thrown errors in the past. With this release, nesting a <View> inside a <Text> will now throw an error on iOS in order to reduce the parity gap between the platforms.
Added Flow types for several components.
We're migrating away from PropTypes and runtime checks and instead relying on Flow. You'll notice many improvements related to Flow in this release.
YellowBox.
Sort warnings by recency, group warnings by format string, present stack traces, show status of loading source maps, support inspecting each occurrence of a warning, and bug fixes.Heads-up: the Facebook internal team is currently working on a rewrite of some core architecture pieces. This is a work in progress and we do not expect it to be ready for use in open source quite yet, but we felt the need to let you know what those commits mentioning Fabric are about.
babelHelpers with Babel 7 support (fbd1beaf66)FlatList is now Strict Mode compliant (a90d0e3614)?. optional chaining operator plugins (aa6f394c42)flexWrap: 'wrap-reverse' (d69e55060f)accessibilityTraits to Text (654435d1ed)SpringInterpolator (1dde989919)react-native link (843cfc3b20)Image.defaultSource (b0fa3228a7)getParent methods for non-breaking API change (c3c5c3cbce)RCTBridgeModule.h (ca898f4367)react-native init will use Babel 7 (e315ec9891)WebView to only http(s) URLs: (634e7e11e3, 23f8f7aecb)Cannot resolve module X isse due to removal of @providesModule (843a433e87)YellowBox (d0219a0301)$FlowFixMe to invalid prop accesses where Flow wasn't complaining before (f19ee28e7d)Image (8bac869f5d)SegmentedControlIOS (113f009698)ProgressViewIOS (c87701ba05)PickerIOS (1c66cdc7e8)Switch (06052a2330)Slider (cbe045a95f)RefreshControl (891dfc3da4)ListView (4b1ecb6204)TextInput (c8bcda8150)TouchableBounce (8454a36b0b)TouchableOpacity (44743c07ad)TouchableHighlight (f0c18dc820)TouchableWithoutFeedback (0b79d1faa2)ScrollView (b127662279)DatePickerIOS (97e572ea6d)KeyboardAvoidingView (188b118b60)ActivityIndicator (0b71d1ddb0)$FlowFixMe in TouchableBounce (ffda017850)$FlowFixMe in ScrollView (af6e2eb02d)$FlowFixMe in ListView (af6e2eb02d)$FlowFixMe in Text (6042592cf4)$FlowFixMe in RTLExample (206ef54aa4)$FlowFixMe in AppContainer (a956551af7)$FlowFixMe in Slider (1615f9d161)StyleSheet: Support animated values for border dimensions (3e3b10f404)react-devtools-core and plist to include security fixes reported by npm audit (3a1d949906)Switch to ES6 Class (970caa4552)Slider to ES6 Class (5259450c14)ActivityIndicator to ES6 Class (edd7acbb1e)RefreshControl to ES6 Class (a35a238317)KeyboardAvoidingView to ES6 Class (c017dcb0f2)DatePickerIOS to ES6 Class (f8c8231706)Text to ES6 Class (ab92c00245)context.isInAParentText w/ React.createContext (e1339bc183)Text implementation (06c05e744d)Text to React.forwardRef (e708010d18)View to React.forwardRef (3e534b9aab)genMockFunction and genMockFn to fn in tests (390ded871c)ViewProps exact (65c336f38f)TVViewProps into ViewProps instead of intersection (bc658d3c44)let/const (8f5ebe5952)MockNativeMethods in Jest (5d4c542c58)app.json after ejecting (57774a4a98)git apply --reject for failed upgrades (4fbd244b9a)TouchHistoryMath from React to React Native (06085d3836)RCTInputAccessoryView (c136c54ff0)ListEmptyComponent in an extra view (db061ea8c7)Text PropTypes to its own file (cd8128b2ec)ReactNative.NativeComponent native methods in Jest (3e9a371ace)View and VirtualizedList (5035af80ec)ViewPropTypes (f1316cab6c)Style to DangerouslyImpreciseStyle (4895c645ea)requireNativeComponent's signature has been simplified to only take extraOptions (820673e707, b549e364e0, 28d37781c6, 1c90a2b47b, and 1ab7d49c2d by @yungsters)blur, focus, measure, measureInWindow, measureLayout, setNativeProps) are no longer bound to the text component instance. It is therefore unsafe to pass these methods by reference (i.e: as callbacks) to functions. So, things like setTimeout(this._txtRef.focus, 1000) will no longer work. Please instead do: setTimeout(() => this._txtRef.focus(), 1000).file:// (634e7e11e3 by @mmmulani)RCTFont size overrides (6611fefef7)ReactFragmentActivity deprecated as it's not necessary when targeting API level 14 and above (77a02c0d83)underlineColorAndroid to transparent (a3a98eb1c7)WebView geolocation by default (23d61b35fb)ReadableNativeMap (30d06b4286)react-native link will now replace '/' by '_' when linking projects. If you previously linked scoped packages, they will get linked again. (dbd47592a1)VirtualizedList now accounts for ListHeaderComponent length when calculating offset (604bcfa4a8)Modal + FlatList scrolling (45b0907f61)RCTNetworking where not all tasks/handlers were being cleared during invalidation (b805172034)keyboardShouldPersistTaps: never (ffe6c110f7)Text (e2ce22b823)VirtualizedSectionList lint warnings (26a1eba1ce)VirtualizedSectionList:ItemWithSeparators (488a4c7e1c)TextInput's initial layout measurements (c6b4f9f2ce)requireNativeComponent check (1c90a2b47b)TextInput autocapitalization bug (ff70ecf868)ViewPropTypes (41a940392c)StatusBarManager (4a2c560768)ReactNative.NativeComponent (1/2) (de11ba2a5e)ReactNative.NativeComponent (2/2) (752863629d)react-native init projects (843a433e87)react-native-windows (54942746d4)react-native run-ios command play nicely with multiple Xcode versions (a130239257)TextInput by an empty string (1ffb2b63be)InputAccessoryView so it can be imported (80fc415cf1)InputAccessoryView safe area conformance (490f22ae72)run-ios (0934c1778f)run-ios not turning on Simulator (9736ddc061)onChange event definition to DatePickerIOS (3b53091869)RNTesterPods: Add missing folly include (128c9343c4)RNTesterPods: folly::Optional's has_value() to hasValue() until folly is upgraded (128c9343c4)RNTesterPods: Fix import for RCTTestAttributes.h (128c9343c4)RNTesterPods: Fix conversions.h to use namespaced includes (128c9343c4)-Wenum-conversion (b8f30db0ae)TextInput slowness on Android (5017b86b52)requireNativeComponent in .android.js files (a51e8b19cc)RefreshControl from getting stuck when a parent is scrolled horizontally (33ffa79a51)DevServerHelper (56d48bd9ec)ReactInstanceManager unmountApplication to support ReactRootView recycling (4a9b2a7302)NullPointerException when emitting event using UIManagerModule (291c01f4ff)ScrollView with a TextInput (2f1421dec7)focusTextInput and blurTextInput (ce3b7b8204)ImageResizeMode on Image is no longer exposed; check your usage of resizeMode; the same resize modes exist, but pass them as strings instead (870775ee73 by @TheSavior)<View> within <Text> (e.g. <Text><View /></Text>) (6a1b41643aUIActionSheetDelegate methods (5863b564f8)During the RC testing of this version, a few issues that have been opened don't have yet a finalized solution ( 19827, 19763, 19859, 19955 ). We are aware of them and we hope that by releasing 0.56.0 the surface of developers interacting to find solutions to them will allow for faster resolution and an even better 0.56.1 release. So please check the already opened issues before submitting new ones.
If you are using Windows to develop React Native apps, we suggest you keep an eye on this issue in particular since there have been many reports of issues related to Win 10 and RN 0.56.
Welcome to the March 2018 release of React Native ! Over 81 contributors made 247 commits since February. Thanks for another exciting release.
Here are a few highlights:
useNativeDriver flag with animations that track other Animated.Values (b48f7e5605 by @kmagiera)contextMenuHidden property for TextInput (2dd2529b3a by @amhinson)testOnly_pressed to TouchableHighlight for snapshot tests (3756d41de1 by @sahrens)letterSpacing for Text and TextInput (5898817fc1 by @motiz88)base-line metric exposure for Text and TextInput (51b3529f6c, 0dbe18375e, and 7630a614e4 by @shergin)initialDate prop (446ce49e9b)RCTVersion.h's RCTGetReactNativeVersion() (30469ed001 by @LeoNatan)react-native run-ios --simulator ... (2ad34075f1 by @koenpunt)*.jsbundle files from Git (21231084db by @aneophyte)react-native-git-upgrade now shows files merged with conflicts in red (e53a8f7097 by @alvinthen)ResolvedAssetSource type to have all read-only members (4d0ee37293 by @sahrens)isInstalled check for Android and references to unregister (ec884890b1 by @rozele)onPress magnification animation now works via the tvParallaxProperties prop object taking pressMagnification, pressDuration, and pressDelay (6c353fd7e9 by @JulienKode)opacity upon change in disabled prop (9366ce416f by @maxkomarychev)react-native-vector-icons (a759a44358 and 54dc11a5fb by @jeanlauliac and @t4deu))removeEventListener method (59c7b2cfac by @MoOx)node-notifier dependency to fix memory leak (860fcd458a by @rickhanlonii)isConnected works again (dbafc29e60 by @alburdette619)react-native run-ios --device [id] by passing port when running on device (f8fee0a631 by @jozan)run-ios where Entry, ":CFBundleIdentifier", Does Not Exist was being received (5447ca6707 by @blackneck)onLayout prop for TextInput (8a073c1d8b by @rozele)invertStickyHeaders can now be set from SectionList or FlatList (dd479a9377 by @dannycochran)Systrace.swizzleJSON() (3e141cb6c9 by @yungsters)ReactInstanceManager#registerAdditionalPackages has been removed; Create UIManager interface and extract common classes in uimanager/common (6b45fb2cb1 by @mdvacca)Welcome to the February 2018 release of React Native! This release includes work done by the React Native team and the community in January, and there are some big changes here after the holidays. Thanks for 270 commits from 87 contributors, you all are great! Here are a few highlights from the release:
Space-evenly is now there (sorry for the confusion with 0.52's release notes)The changelog is arranged by the customary added, removed, changed, and fixed plus internal; the changes are also organized by platform.
XMLHttpRequest#fetch, and fetched on files to a local blob consistently (be56a3efee and 854c2330eb by @satya164 and @fkgozali)invertStickyHeaders (ecaca80d42 by @janicduplessis)space-evenly is now supported (sorry for the confusion with 0.52 notes) (b1cdb7d553 by @gedeagas)link, and unlink – keep an eye on react-native-window's use of it! (a40bfa730e by @rozele)minify flag to react-native bundle command (3f969cb1db by @tomduncalf)maintainVisibleContentPosition (cae7179c94 and 65184ec6b0 by @sahrens)accessibilityElementsHidden prop (31288161e1 by @aputinski)scripts/react-native-xcode.sh (PR rev 0d4ff1b7ea by @brunolemos with landing assists b8c86b8dec and 0d4ff1b7ea)utf8 utility - use the utf8 package now instead (431670f908 by @mathiasbynens)visible-password or phone-pad keyboard types. (164f6b6afd by @BrandonWilliamsCS)resizeMode="center" is now documented and has an example present (be7037fd8e by @motiz88)skipPermissionRequests: true (5c17db8352 by @ngandhy)DevServerHelper (644123aa6f, e756251413, 6e44356c9b, 1019bda930, 06d8f96a64, f88c9d6382, and 108f9664bf by @davidaurelio).gitignored files during the react-native-git-upgrade process (7492860ffb by @ncuillery)Animated.modulo values with useNativeDriver: true (6c38972327 by @motiz88)NativeModules.UIManager.showPopupMenu method calls error callback (0c18ec5b9c by @dryganets)secureTextEntry changes (09b43e479e by @jainkuniya)react-native link has been fixed to correctly link iOS and tvOS targets (a63fd378a4 by @dlowder-salesforce)GLog fix on case sensitive APFS macOS (2fef1bafc8 by @hovox)SourceCode and DeviceInfoModule out of Native Modules (47fe52380a and 429fcc8cab)assetPlugin option in Metro (af6450c660 by @ide)babel-preset-react-native: only require plugins once (df6c48cf36 by @davidaurelio)[RCTShadowView isHidden] was removed (c19bc79688 by @shergin)packagerInstance option and rename it to server (bbbc18c4ee)pod install a ton; this was in 0.53 originally but had to be re-added (d40db3a715 by @CFKevinRef)Namespace custom ESLint rules through eslint-plugin-lint (488b6825c5 by @zertosh)
... and now we're at 0.54 🎉 (67e67ec83c, 21dd3dd296, 49e35bd939, 829f675b8b, and 294d95a236 by @grabbou and @hramos)
Welcome to the January 2018 release of React Native. The CLI now supports --port for both platforms, a few components were made to support consistent props across both platforms, and various fixes were made. There was a lot of under-the-cover work done with more test improvements and dependency updates. 118 commits were made by 43 contributors 🎉.
easing and duration (4d33080f0f by @sahrens)react-native run-ios now supports the --port argument for metro (33d710e8c5)snapToInterval like iOS (ddd65f1ba9 and b2848a54b0 )onKeyPress like iOS (c9ff0bc212 by @joshyhargreaves)isInspectable (59c7967627 by @bnham)pod install a ton (d40db3a715 by @CFKevinRef)autoGrow prop, since this is platform-default behavior now (dabb78b127 by @shergin)minify=true when calculating the list of dependencies for the CLI (4a1bb8fe8d by @rafeca)Below is a list of the remaining, low-level changes that made it into this release of React Native.
This changelog has been prepared by Ryan Turner (@turnrye) - thank you for your time and making such a detailed changelog 🔥🔥
This release had a lot of work around the bundler and packager, a ton of bugfixes, and updates to many of React Native's dependencies. Lots of under-the-hood work was done as well to improve the layout engine. Happy new year!
If you would like to help us with the next release changelog, please contact @grabbou
npm run prettier
(164591218f by
@janicduplessis)getLastRowID method
(d79e245d19)YellowBox.ignoreWarnings([...]) rather than
console.ignoredYellowBox = [...]
(26038f50bb by
@wli)renderApplication() now supports async initial render
(1b22d49ae8 by
@bvaughn)backgroundColor on TouchableHighlight
(5a1171ebfa by
@sahrens)RCTRefreshControl from jumping around
(2e1707d0e6 by
@sophiebits)transformCommand: add missing test
(73a01be9bc by
@jeanlauliac)dev=false
(6d92046c56 by
@rafeca)justifyContent while you're minWidthing and marginLefting;
before the justification wasn't honored
(f5becebc07 by
@woehrl01)marginLeft: auto and alignItem: stretch now play nicely together; before
the width and height ended up incorrect
(5f99b1a55f by
@woehrl01)react-native-git-upgrade, don't execute git's hooks
(0182086350 by
@adrienthiery)react-native-git-upgrade and failing with a signal, return that
to the terminal
(b9a5862f67 by
@mateusz-)selection prop that made it
not-so-random
(766f020e68 by
@rozele)#define isnan __builtin_isnan for Android clang-5 to mimic
gcc's default behavior
(f8fe6b0c70)borderRadius with Android API level < 18
(5aa1fb3ff3 and
ca7fe72c31 by
@rsnara)lineHeight behavior match iOS's 📏
(3f1b021506)selectionColor defined but
there is no drawable cursor
(1e18d907bf by
@gpeal)double for count, not NSInteger
(eaa84997ce)isNuclideDebuggingAvailable on iOS
(59c3e33f63)requiresMainQueueSetup in RCTTVNavigationEventEmitter to satisfy
Xcode warning
(ee3532b5c2 by
@charpeni)testID works on TabBarItem on iOS
(e19d9dec9b)pod_target_xcconfig for PrivateDatabase
(38b96cd7bb by
@ide)ECONNREFUSED on connecting to
packager (b1701ccaef
and ff3dc2ed19 by
@adamjernst)reactBridgeDidFinishTransaction from RCTScrollView
(a255204e3e by
@shergin)Below is a list of the remaining, low-level changes that made it into this release of React Native.
WITH_FBYSTRACE
(03956c4ecf)embeddedBundleURL update situation
(d1fc8ef3a3)android_react_native_perf.use_separate_ui_bg_thread experiment.
(4f886a29a1)std::string to const char*
(b952365ba6 by
@johnislarry)config_utils_defs macros.
(88f6f69152 by
@ttsugriy)scriptURL to RCTTestRunner
(266ab7a006)folly::none in case
of error (0ac5a5230c
by @fromcelticpark)onHostResume
(ad89ea7b50)minimumViewTime in ViewabilityHelper
(d19d137cc1)