React Native 0.41 正式版发布
-
从0.18开始,RN默认项目全面转向ES6,语法大变化,请参考此贴学习 http://bbs.reactnative.cn/topic/15/
新特性
Android: Nodes(新的布局引擎)
本特性目前还处在实验阶段。你可以这样在你的
ReactNativeHost
派生类中来打开这个功能:增加如下代码:
@Override protected UIImplementationProvider getUIImplementationProvider() { return new FlatUIImplementationProvider(); }
Nodes布局引擎是ReactNative的安卓版本中实验性的、UIImplementation类的替代版本。相比原本的UIImplementation实现,它有两个重要的好处。
- 在安卓平台也能支持
overflow: visible
- 更高性能的生成视图层次。
我们的目的是逐步使用Nodes替代目前已有的UIImplementation(在所有的bug被稳定修复之后)。
Nodes
引擎本身的功能开发和相关的bug修复将在下面单独的章节中列出,以便于区分。阅读 readme 来获得更多信息。
重要变更
Android: 将ReactNativeHost的getUserDeveloperSupport方法设置为public
这个提交将
getUseDeveloperSupport
的可见性从protected
变为了public
。为了更新到新的版本,你需要将你的MainApplication.java
中的如下代码:protected boolean getUseDeveloperSupport() {
修改为:
public boolean getUseDeveloperSupport() {
Android: ReactClippingViewGroup 被移动到了另一个包中
使用了
ReactClippingViewGroup
的开发者需要如下的修改引入的方式:import com.facebook.react.views.view.ReactClippingViewGroupHelper;
修改为
import com.facebook.react.uimanager.ReactClippingViewGroupHelper;
一般修改
Bug修复
- 修复当子视图超出父视图时的容器尺寸计算错误(8d2a034) - @emilsjolander
- 修复错误
babelHelpers.typeof is not a function
(ab89b71) - @cmcewen - 修复Jest自动化测试 (8305743) - @grabbou
- 命令行工具:修复当没有windows工程时产生的错误(5927646) - @rh389
- 检查元素:修复当Touchables的检查器被显示时产生的错误(5f8d7ac) - @magicismight
- 检查元素:修复检查元素界面内容异常超出的问题 (21ba956) - @sahrens
- Packager: Fix the
path.sep
replacement of node-haste for Windows (<tt>2249af1</tt>) - @jhen0409 - Packager: TerminalReporter: remove underline/emoji (<tt>04fdf40</tt>) - @jeanlauliac
- Packager: TerminalReporter: properly reporting bundle updates (<tt>3d12ddb</tt>) - @jeanlauliac
- Packager: Module: remove too-many-misses codepath (<tt>2f1d1bd</tt>) - @jeanlauliac
New features and enhancements
- Expose pressRetentionOffset for Text (<tt>550469b</tt>) - @evollu
- NavigationExperimental: Support custom card style interpolators (<tt>c8a7f9e</tt>) - @dingbat
Android
New features and enhancements
- allowFontScaling is now supported (<tt>4394419</tt>) - @sdg9
- Throw on redundant callback invocations from native modules (<tt>e646183</tt>) - @theoy
- ART: Support dashes in ARTShape (<tt>e1b0d32</tt>) - @tepamid
- ART: Fix OutOfMemoryException in ARTSurfaceShadowNode (<tt>e1b0d32</tt>) - @tepamid
- Yoga: Correctly check if child is flex by also accounting for undefined (<tt>18a2c23</tt>) - @emilsjolander
- Yoga: Convert max cache count into a define (<tt>05e0b67</tt>) - @emilsjolander
iOS
Bugfixes
- Fix for dimensions not updating correctly on iPad due to screen rotation (<tt>a19c699</tt>) - @manicakes
- Fix comparison between NSNumber* and int (<tt>7123618</tt>) - @kastiglione
- Fix Podspec (<tt>6e9fe37</tt>) - @ptomasroos
- Fix new projects generated by
init
(<tt>e0c3d56</tt>) - @rh389
New features and enhancements
- CocoaPods: Make Core subspec use a Ruby string array for exclude_files (<tt>01af9ee</tt>) - @ide
- Show Yellow Box when we fail to load a local image (<tt>ac11eed</tt>) - @mmmulani
- Apple TV support 5 (<tt>fd5af61</tt>) - @dlowder-salesforce
- 在安卓平台也能支持