react-native-codegen
Installation
yarn add --dev react-native-codegen
Note: 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)Blob
s (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/assets
Aside 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.sh
React 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.5
Change 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.zip
android/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).gitignore
d 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 minWidth
ing and marginLeft
ing;
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)