原文连接node
通过数百名贡献者数月的努力,React Native 迎来了 0.60 版本的发布。此版本完成了 Android 和 iOS 平台的一些重大迁移,许多问题也获得解决。这篇文章主要介绍了该版本的一些亮点。react
可访问性 API 有许多改进,例如 announceForAccessibility,以及对角色、动做支持、标志等的改进。可访问性是一门复杂的科学,但咱们但愿这些改进更靠近 A11Y[1]。能够查看 React Native Open Source Update June 2019[2],了解有关这些更改的更多详细信息。ios
React Native 的启动屏幕已更新了!这个新的启动页面将以更加友好、引人入胜的方式欢迎用户进入 React Native 生态系统。git
AndroidX 是 Android 生态系统向前迈出的重要一步,旧的支持库已被弃用。React Native 0.60 已迁移到了 AndroidX。这是一个破坏性变动,您的 native 代码和依赖库也须要迁移。github
虽然须要迁移本身的 native 代码,但 jetifier
工具能够用于来修补 node_modules。库维护人员须要升级,但这个工具提供了一个临时解决方案,让维护人员有时间来发布 AndroidX 版本。所以,若是您发现与 AndroidX 迁移相关的错误,请试一试这个工具。web
CocoaPods 如今是 React Native 的 iOS 工程的一部分[3]。请确保从如今开始使用 xcworkspace 文件打开iOS平台代码(提示:在根项目目录中尝试 xed ios)。 此外,内部软件包的 podspecs 已更改,使其与 Xcode 项目兼容,这将有助于故障排除和调试。做为升级到 0.60 的一部分,指望对您的 Podfile 进行一些直接的更改,以引入这个使人兴奋的支持选项。请注意,咱们了解 use_frameworks!
的兼容性问题,咱们正在考虑变通方法和将来补丁的问题。react-native
WebView 和 NetInfo 之前被提取到单独的 repo 中,在 0.60 中咱们已经完成了将它们从 React Native 的 repo 中迁移出来。此外,为响应社区对新 App Store 策略的反馈,Geolocation 也被抽取出来。若是尚未这样作,请经过向 react-native-webview
,@react-native-community/netinfo
和 @react-native-community/geolocation
添加依赖项来完成迁移。若是您想要自动化解决方案,请考虑使用 rn-upgrade-deprecated-modules
。微信
React Native CLI 的团队已经对称为 autolinking
[4] 的 native module 连接进行了重大改进!大多数场景再也不须要使用 react-native link
。与此同时,该团队对整个连接过程进行了完全改革。确保使用 react-native unlink
来取消预先存在的依赖关系,如上面的文档中所述。app
@lucasbento,@pvinis,@kelset和 @watadarkstar 构建了一个名为 Upgrade Helper 的强大工具,使升级过程更加简单。它能够帮助 React Native 用户使用 brownfield app 或复杂的自定义设置来查看版本之间的变化。详情请查看更新的升级文档[5]。工具
AndroidX 的更改几乎确定须要更新您的库,所以请务必尽快加入支持。若是您还没法升级,请考虑使用 jetifier 检查您的库,以确认用户可以在构建时修补您的库。
查看 autolinking 文档以更新您的配置和自述文件。根据您以前集成的库的方式,您可能还须要进行一些其余更改。检查 CLI 中的依赖关系指南,以获取有关如何定义依赖关系接口的信息。
虽然这些是咱们注意到的亮点,但还有许多其余使人兴奋的事情。要查看全部更新,请查看更改日志[6]。
欢迎关注咱们的公众号:知识小集
(ID: zsxjtip),也欢迎加入咱们的群组讨论问题。能够加微信 coldlight_hh
/wsy9871
进入咱们的 iOS/flutter 微信群。