react-native 0.60.0最新版本更新日志



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.


Android specific

iOS specific

  • Add announceForAccessibility and announcementFinished APIs for making screen reader announcemenets (cfe0032by @rigdern)

  • Ability to force network requests to use WiFi using the 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. (01c70f2 and 916186a by @bondparkerbondand @zhongwuzw)

  • $RN_CACHE_DIR can now be used to manually specify the iOS build cache directory (845eee4 by @hramos)


  • BREAKING Migrated to AndroidX; please see this thread for more details on this change

  • Cleanup RedBox message and stack output; it's now far easier to understand (49d26eb by @thymikee)

  • Add default scrollEventThrottle value to Animated.FlatList and Animated.SectionList; this now behaves consistently with Animated.ScrollView (933e65e by @janicduplessis)

  • Remove invariant on nested sibling VirtualizedLists without unique listKey props; they now trigger a RedBox(af5633b)

  • FlatList and VirtualizedList's default keyExtractor now checks item.id and item.key (de0d7cf by @sahrens)

  • SectionList's 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 (248a108 by @vonovak)

  • Slightly speedup core initialization by moving native version check to DEV only (5bb2277 by @mmmulani)

  • react is now at v16.8.6 (53cec2dee681b7, and 6001acb by @kelset@mdvacca@gaearon)

  • react-native-community/cli is now at v2.0.0 (by @thymikee)

  • flow is now at v0.98 (0e1dfd4 by @nmote)

  • prettier is now at v1.17.0 (ff9f8f3)

  • metro packages are now at v0.54.1 (7ff3874343f0a1 by @motiz88)

  • Replace patched fetch polyfill with whatwg-fetch@3.0 (5447196 by @janicduplessis)

Android specific

iOS specific

  • BREAKING: Split React.podspec into separate podspecs for each Xcode project; your libraries will need to update for this change as well to avoid CocoaPods build errors (2321b3f by @fson)

  • Improve handling of native module exceptions; they are now propagated to crash reporting tools with the context and callstack (629708b by @pvinis)

  • Switch Slider onSlidingComplete event to a non-bubbling event on iOS to match Android (7927437 by @rickhanlonii)


  • StatusBar is no longer deprecated; thank you for the feedback (a203ebe by @cpojer)



Android specific

  • Fix duplicate resource error in Android build (962437f and eb534bc by @mikehardy and @Dbroqua)

  • Reorder operations of native view hierarchy (5f027ec by @lunaleaps)

  • Fix performance regression from new custom fonts implementation (fd6386a by @dulmandakh)

  • Fix internal test case around disabled state of buttons (70e2ab2)

  • Fix extra call of PickerAndroid's onValueChange on initialization; now it is only called when selectedValue changes (82148da by @a-c-sreedhar-reddy)

  • Fix PickerAndroid will reset selected value during items update (310cc38 by @Kudo)

  • Fix unexpected PARTIAL_WAKE_LOCK when no headless tasks registered. (bdb1d43 by @timwangdev)

  • Fix calling TextInput's onKeyPress method when the user types an emoji (a5c57b4)

  • Fix value of TextInput's onSelectionChange start and end arguments by normalizing them (2ad3bb2 by @uqmessias)

  • In Linking.getInitialURL method, use the InteractionManager to wait for the current activity to finish initializing (c802d0b by @mu29)

  • Disable delta bundles on the first app run (e4aff42 by @wojteg1337)

  • In DatePickerAndroid, work around Android Nougat bug displaying the wrong the spinner mode (bb060d6 by @luancurti)

  • Fix crash in Animated Interpolation when inputMin === inputMax (7abfd23 by @olegbl)

  • Fix symbolication for RedBox and YellowBox when using delta bundling (a05e9f8 by @motiz88)

  • Fix CameraRoll crash on mime type guessing (ebeb893 by @Sroka)

iOS specific


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 557989a!

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, isInteractioncan be set manually. (ded7119 by @sahrens)

  • Update detox to match master (c6a5c09 by @kelset)

Android specific


Android specific

iOS specific


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.


  • Fix regexp on hasteImpl (bcd1e2 by @CaptainNic)

  • Fix sparse array handling in EventEmitter#listeners() (f68dc8 by @ide)

  • Fix VirtualizedList to call _updateViewableItems immediately (08141e by @sahrens)

  • Fix prop overrides of TouchableWithoutFeedback (0c4206 by @aleclarson)

  • Fix resolve relative size rendering error in inspector (4884ab by @gandreadis)

  • Fix VirtualizedSectionList by making sure to check array bounds (54f91d by @vonovak)

  • Update _scrollAnimatedValue offset of ScrollView (e0d1b3 by @miyabi)

  • Fix infinite setState in VirtualizedList (c40a93 by @sahrens)

iOS specific

  • Fix incorrect opacity behaviour for Text component (f71357 by @shergin)

  • Fix Text shadow displays when textShadowOffset is {0,0} (17a81b by @Woodpav)

  • Add convert compatible of NSString for bridge message data (c37e9c by @zhongwuzw)

  • Fix nullability warnings in RCTExceptionsManager (2b7d79 by @jtreanor)

  • Fix app to reconnect with metro after the bundler is closed and reopened (c28676 by @rickhanlonii)

  • Fix throttle below 16ms on ScrollView (39776a by @sahrens)

Android specific



  • Make KeyboardAvoidingView with behavior="height" resize on keyboard close (7140a7 by @WaldoJeffers)

  • Update network inspector to have smarter scroll stickiness (57dc37 by @AlanFoster)




React Native的此功能版本包含该平台的许多里程碑更改。有关所选详细信息,请参阅博客文章对于升级用户而言,一些进步伴随着重大改变; 您的应用可能需要手动干预。我们也意识到现有的CocoaPods集成use_frameworks并非与此版本兼容,但在我们为将来的版本准备长期解决方案,请考虑各种变通方法如果您有兴趣帮助评估我们的下一个版本(0.61),请在此处订阅专用问题

你有没有考虑过为React Native做贡献?请务必查看Conactuting to React Native




  • 添加announceForAccessibilityannouncementFinishedAPI来让屏幕阅读器announcemenets(cfe0032@rigdern

  • 能够强制网络请求使用该allowsCellularAccess属性使用WiFi 这可以确保如果与本地硬件设备通信则通过WiFi发送网络请求,并且通过设置标志来完成。允许通过蜂窝网络进行网络连接的默认行为不变。@condparkerbond@zhongwuzw01c70f2916186a

  • $RN_CACHE_DIR现在可用于手动指定iOS构建缓存目录(@hramos845eee4

  • BREAKING迁移到AndroidX; 有关此更改的更多详细信息,请参阅此主题

  • 清理RedBox消息和堆栈输出; 它现在更容易理解(49d26eb by @thymikee

  • 将默认scrollEventThrottle添加Animated.FlatListAnimated.SectionList ; 这与现在一致的行为Animated.ScrollView933e65e@janicduplessis

  • 删除嵌套兄弟VirtualizedLists上的变量,没有唯一的listKey道具; 他们现在触发一个RedBoxaf5633b

  • FlatListVirtualizedList的默认值keyExtractor现在检查item.iditem.key@sahrensde0d7cf

  • SectionListscrollToLocationiOS上现在共有itemIndexAndroid这样; 两个平台现在都是一致的,itemIndex值0现在表示滚动到第一个标题(@vonovak248a108

  • 通过将本机版本检查仅移至DEV(5mmb2277 by @mmmulani来略微加速核心初始化

  • react现在是v16.8.6(53cec2dee681b7@kelset6001acb@ mdvacca@ demonaron

  • react-native-community/cli现在是v2.0.0@thymikee

  • flow现在是v0.98(@nmote0e1dfd4

  • prettier现在是v1.17.0(ff9f8f3

  • metro包现在正处于v0.54.1(7ff3874343f0a1通过@ motiz88

  • whatwg-fetch@3.0547196 by @janicduplessis替换修补的fetch polyfill



  • BREAKING:将React.podspec拆分为每个Xcode项目的单独podspec; 你的库需要更新这个更改,以避免CocoaPods构建错误(@fson2321b3f

  • 改进对本机模块异常的处理; 它们现在通过上下文和callstack传播到崩溃报告工具(629708b by @pvinis

  • Slider onSlidingComplete事件切换到iOS上的非冒泡事件以匹配Android(7257437 by @rickhanlonii


  • StatusBar不再被弃用; 感谢您的反馈(a203ebe by @cpojer




  • 修正了Android编译重复的资源错误(962437feb534bc通过@mikehardy@Dbroqua

  • 重新排序本机视图层次结构的操作(5f027ec by @lunaleaps

  • 修复新自定义字体实现的性能回归(fd6386a by @dulmandakh

  • 修复禁用按钮状态的内部测试用例(70e2ab2

  • 修复的额外调用PickerAndroidonValueChange上初始化; 现在它只在selectedValue变化时被调用82148da@ ac-sreedhar-reddy

  • 修复PickerAndroid将在项目更新期间重置所选值(310cc38 by @Kudo

  • 在没有注册无头任务时修复意外的PARTIAL_WAKE_LOCK。@timwangdevbdb1d43

  • 修复用户键入表情符号时调用TextInputonKeyPress方法(a5c57b4

  • 通过规范化它们来修复TextInputonSelectionChange开始和结束参数的值(2ad3bb2 by @uqmessias

  • Linking.getInitialURL方法中,使用InteractionManager等待当前活动完成初始化(c802d0b by @ mu29

  • 在第一个应用程序运行时禁用delta捆绑包(e4aff42 by @ wojteg1337

  • DatePickerAndroid中,解决Android Nougat错误显示错误的微调模式(bb060d6 by @luancurti

  • 当inputMin === inputMax(7abfd23 by @olegbl时修复动画插值中的崩溃

  • 使用delta捆绑时修复RedBoxYellowBox的符号a05e9f8 by @ motiz88

  • Mime类型猜测中修复CameraRoll崩溃(@Srokaebeb893



这可能是React Native在可预见的未来版本59的最后一个补丁版本:它包含一个重要的Android核心Android端更新,以防止大多数与三星设备相关的崩溃 - 感谢@Kudo的工作通过557989a解决这个问题



这是针对几个ScrollView回归的补丁修复版本,以及由升级Gradle(现在可以支持插件的最高版本为5.4.1和3.4.0)和Xcode 11 Beta 1引起的崩溃的“面向未来”的RN 59。可以升级到此版本而无需升级您的工具。


  • 如果isInteraction未在配置中指定,则它将始终默认为true阻止VirtualizedList更新之类的交互。这通常不是你想要的useNativeDriver,因为动画不会被JS中断。如果某些内容最终干扰动画并导致帧丢失,isInteraction则可以手动设置。@sahrensded7119

  • 更新排毒匹配主(c6a5c09@kelset








  • 修正了在正则表达式hasteImplbcd1e2@CaptainNic

  • 修复稀疏数组处理EventEmitter#listeners()f68dc8 by @ide

  • 修复VirtualizedList_updateViewableItems立即致电08141e by @sahrens

  • 固定的支柱覆盖TouchableWithoutFeedback0c4206@aleclarson

  • 修复在检查器中解析相对大小渲染错误(4884ab by @gandreadis

  • 修复VirtualizedSectionList通过确保检查数组边界(54f91d@vonovak

  • 更新ScrollView的_scrollAnimatedValue偏移量@miyabie0d1b3

  • setStateVirtualizedList中修复无限csa93@sahrens




  • KeyboardAvoidingViewbehavior="height"上键盘关闭调整大小(7140a7@WaldoJeffers

  • 更新网络检查器以获得更智能的滚动粘性(57Ac37 by @AlanFoster

    打赏 & 赞助

  • 如果哪篇文章对你有所帮助,且您手头还很宽裕,欢迎打赏赞助我