美文网首页
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