美文网首页
React Native学习第二天

React Native学习第二天

作者: Cheep | 来源:发表于2018-09-26 17:30 被阅读0次

    简书

    今天是学习第二天,每天进步一点点,生活变得好一点,我是你们的小宇同学。很开心今天跟大家一起分享我的劳动成果,虽然借鉴别人的劳动成果,但是也是我自己学习的过程中遇到的问题,问题很简单,适合刚刚开发的同学。我在长沙,你在哪里呢?
    

    <1>.引入realm

    数据库组件
    npm install realm --save 
    react-native link realm  此命令自动帮你做如下操作
    
    1.app->build.gradle: 引入jar包
    implementation project(':realm')
    
    2.Android-MainApplication或者MainActivity
    import io.realm.react.RealmReactPackage;
    @Verride
    protected List<ReactPackage> getPackages(){
        ...
        new RealmReactPackage()
    }
    
    3.settings.gradle
    include ':realm'
    project(':realm').projectDir = new File(rootProject.projectDir,'../node_modules/realm/android')
    

    <2>.引入react-native-device-info

    手机设备信息组件
    npm install --save react-native-device-info
    react-native link react-native-device-info
    
    报错:
    Java exception in 'NativeModules'
    
    java.lang.IncompatibleClassChangeError: The method 'java.io.File android.support.v4.content.ContextCompat.getNoBackupFilesDir(android.content.Context)
    ' was expected to be of type static but instead was found to be of type virtual (declaration of 'com.google.android.gms.iid.zzak' appears in
    /data/app/com.rn_screen_project-1/base.apk)
    com.learnium.RNDeviceInfo.RNDeviceModule.getConstants
    
    解决办法:
    app->build.gradle->dependencies
    添加 implementation('com.android.support:support-v4:26.1.0 '){ exclude module: 'support-v4' }
    

    <3>.index.android.bundle报错

    1.新建assets
        进入 项目路径\android\app\src\main
        新建assets文件夹
    2.项目根目录 输入命令:
        react-native bundle --platform android --dev false --entry-file index.js --bundle-output 
        android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res 
    
    image

    <4>.var\let\const区别

    1.CONST
        const定义的变量不可以改变,而且必须初始化
        const b = 0;                        //正确
        const b;                            //错误,必须初始化
        consle.log('函数外const定义b:'+b);   //有输出值
        b = 1;                              //
        consle.log('函数外const定义b:'+b);   //无法输出
    2.var 
        定义的变量可以修改,如果不初始化会输出undefined,不会报错
        var x = 1;
        if(x==1){
            var x = 2;
            console.log('x==='+x);
        }   
        console.log('x==='+x);
        输出结果:
            x===2
            x===2
    3.let
        是快级作用域,函数内部使用let定义后,对函数外部无法影响
        let x = 1;
        if(x==1){
            let x = 2;
            console.log('x==='+x);
        }
        console.log('x==='+x);
        输出结果:
            x===2
            x===1
    
    image

    相关文章

      网友评论

          本文标题:React Native学习第二天

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