之前项目中使用react-native的版本是0.44,收到上级命令说要升级RN到最新的0.50版本后,出现了一堆问题,在处理问题的最好办法就是看官方文档!看官方文档!看官方文档!不要自己瞎搞。
1.第三方编译库
RN iOS 0.45以上版本开始需要依赖一些第三方编译库,这些库在国内下载都非常困难(一般的翻墙工具都很难下载)。
详细操作:http://reactnative.cn/post/4301
PS:个人建议翻墙后去升级
2.更新 podspecs
如果你正在使用 Cocoapods, 你必须更新你的 Podfile ,给其中的 React subspec 添加 ‘BatchedBridge’ 或 ‘CxxBridge’ 的依赖。
BatchedBridge在未来是会被RN抛弃使用,所以建议使用CxxBridge
在pod使用CxxBridge的话,该模块会对folly第三方库产生依赖需要添加folly模块。
该模块存放在“node_modules/react-native/third-party-podspecs/”中,需要在pod中添加该模块
pod 'React', :path=>'node_modules/react-native/', :subspecs => [
'Core',
'RCTText',
'RCTNetwork',
'RCTWebSocket',
'RCTImage',
'RCTAnimation',
'DevSupport',
'CxxBridge'#RN版本高于0.45之后必须导入
#这里可以继续添加其它你需要的react组件
]
#如果使用的RN是>=0.42.0版本的话,还要显式声明包含Yoga组件
pod 'yoga', :path=>'node_modules/react-native/ReactCommon/yoga'
#0.45后需要添加第三方依赖
pod 'Folly', :podspec => 'node_modules/react-native/third-party-podspecs/Folly.podspec'
pod 'DoubleConversion', :podspec => 'node_modules/react-native/third-party-podspecs/DoubleConversion.podspec'
pod 'GLog', :podspec => 'node_modules/react-native/third-party-podspecs/GLog.podspec'
3.更新后
在最新的react中,之前在里面的PropTypes被拆分出来,需要自己添加"prop-types"这个库。
package.json
"prop-types": "^15.6.0",
"react": "16.0.0",
"react-native": "^0.50.1",
//以前使用方式
import React, {PureComponent,propTypes} from 'react';
//现在使用方式
import {PropTypes} from "prop-types";
网友评论