记录下坑,以免再掉下去了哎。。。
-
icon={require('image!yaodian')}
tabbar调用图片的时候,如果有新加入的图片,需要重新编译一下,这样系统才能够调用的到 -
写分类的时候,记得在每个分类都写代码,不然Main调用不到分类的信息。
3.千万记得大小写正确,有时候一个驼峰的大写没写出来,项目会改到疯。
4.Xcode7写的所有RN项目,在升级到Xcode8都会报错,需要做以下修改。
1、RCTSRWebSocket.m
屏幕快照 2016-09-29 下午3.44.04.png
改成:
(void)SecRandomCopyBytes(kSecRandomDefault, keyBytes.length, keyBytes.mutableBytes);
已试,可解决报错问题。
5、RCTScrollView.m
屏幕快照 2016-09-29 下午3.53.34.png
打开RCTSCrollView.m Command+F 搜索@implementation RCTCustomScrollView只会搜索到一个结果,然后修改:
@implementation RCTCustomScrollView{ RCTRefreshControl *_refreshControl;}//不管原来有什么,在原来的基础上加上这句}
6、
[_bridge.imageLoader loadImageWithURLRequest:imageRequest size:CGSizeMake(100, 100) scale:1 clipped:。。。。这句话报错
解决:
[_bridge.imageLoader loadImageWithURLRequest:imageRequest
size:CGSizeMake(100, 100)
scale:1
clipped:FALSE
resizeMode:RCTResizeModeStretch
progressBlock:nil
completionBlock:^(NSError *error, UIImage *image) {
[self shareToWeixinWithData:aData thumbImage:image scene:aScene callBack:aCallBack];
}];
7、 使用系统函数,类似getDefaultProps、getInitialState之类的,return是用大括号。使用自定义的函数,则用小括号()。
return(); 和 return{}的区别:前者是render方法里返回的界面,后者是返回一个对象
- 在调用cell.js的变量的时候,记得用=“”,而不是继续:‘’
<MyCell leftIconName="draft" leftTitle="钱包" rightTitle="账户余额:¥100"/>
9.使用数组的时候,for遍历记得添加 key={i}
renderBottomItem(){
// 数组
var itemArr = [];
// 数据数组
var data = [{'number':'100', 'title':'码哥券'},{'number':'12', 'title':'评价'},{'number':'50', 'title':'收藏'}];
// 遍历创建组件装入数组
for(var i=0; i<data.length; i++){
// 取出单独的数据
var item = data[i];
itemArr.push(
<TouchableOpacity key={i}>
<View style={styles.bottomInnerViewStyle}>
<Text style={{color:'white'}}>{item.number}</Text>
<Text style={{color:'white'}}>{item.title}</Text>
</View>
</TouchableOpacity>
);
}
// 返回数组
return itemArr;
}
10.报错:
SyntaxError:Strict mode does not allow function declaration in a lexically nested statement.
解决:
打开
.\node_modules\react-native\Libraries\Core\InitializeCore.js 112行。
将function handleError(e, isFatal)替换成var handleError = function(e, isFatal) {
最终执行npm start -- --reset-cache或者reload,解决问题。
网友评论