美文网首页web前端开发
ReactNative遇到的坑,各种报错,持续更新。。。

ReactNative遇到的坑,各种报错,持续更新。。。

作者: 以德扶人 | 来源:发表于2016-12-13 15:03 被阅读0次

    记录下坑,以免再掉下去了哎。。。

    1. icon={require('image!yaodian')}
      tabbar调用图片的时候,如果有新加入的图片,需要重新编译一下,这样系统才能够调用的到

    2. 写分类的时候,记得在每个分类都写代码,不然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方法里返回的界面,后者是返回一个对象

    1. 在调用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,解决问题。

    相关文章

      网友评论

        本文标题:ReactNative遇到的坑,各种报错,持续更新。。。

        本文链接:https://www.haomeiwen.com/subject/fnqbmttx.html