第一个RN项目截止目前为止遇到的坑(问题吧)

第一个RN项目截止目前为止遇到的坑(问题吧)

猿掌柜
2017-12-23 / 0 评论 / 35 阅读 / 正在检测是否收录...

从开始说要学着做一个RN项目,结果实际开发中遇到很多很多的坑,

视频教程里面是0.21版本的RN,而我现在直接伤到了0.51

视频中式针对IOS的开发,而我只能针对Android。

Navigator已经取消了,湿了很多法法都不得使用,遂放弃了,改用react-nativator,

这个组件也是看了好多教程才稍微弄出来(依然是不太懂,但是感觉比navigator好用点貌似)

没有按着视频的ES5的语法来做项目,必竟ES7都出来很久了。

这就导致了一系列问题,现在的进度是好不容易弄到了视频详情页。但是等待的菊花图不知为何吊不出来,我很是惆怅啊。

艰难前进中,比H5开发难多了啊~~~

1.png
BS_PIC_2017-12-23-14-19-10.png

不知道为何下面会有一条线~~~

在这列举下遇到的react-native-video中的坑,网上也有好多解决办法,我在这里在列出来一下(针对安卓)

1. 安装模块

进入项目后:npm install react-native-video –save(大家都会~~)

等待下载完成之后先别急,要修改一些东西;

1. 首先,找到 android/settings.gradle 这个文件,在其中加入以下代码:

 include ':react-native-video'

project(':react-native-video').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-video/android')

2. 找到 android/app/build.gradle 这个文件,在 dependencies 大括号的方法中添加如下代码: compile project(':react-native-video')

 就像这样: dependencies { ... compile project(':react-native-video') }

3. 如果你的 react-native版本<0.29,那么找到MainActivity.java 这个文件,在最顶部添加:importcom.brentvatne.react.ReactVideoPackage; 并且在下面的代码中添加:new ReactVideoPackage() 

 如果你的 react-native版本>=0.29,那么就找到MainApplication.java这个文件,在顶部添加:import com.brentvatne.react.ReactVideoPackage; 并且在下面的代码中添加:new ReactVideoPackage() 就像这样:

@Override
    protected List<ReactPackage> getPackages() {
      return Arrays.<ReactPackage>asList(
          new MainReactPackage(),
          new ReactVideoPackage()
      );
    }

这些都做完之后,项目中运行这个代码:react-native link

会出现这样的提示:rnpm-install info Android module react-native-video is already linked

没有这个是不能成功引入的哦。接下来应该就都会了,

导入组件:

import Video from 'react-native-video';

<Video source={{uri: params.json.video}}
                 rate={1.0} // 控制暂停/播放,0 代表暂停, 1代表播放                  
               volume={1.0} // 声音的放大倍数
                  muted={false}// true代表静音,默认为false.
                  paused={false} 
                 resizeMode="contain"// 视频的自适应伸缩铺放行为,三个参数                 
                 repeat={false} // 是否重复播放                  
                 playInBackground={false}
                 playWhenInactive={false}
                 onLoadStart={this.loadStart}
                 onLoad={this.setDuration}
                 onProgress={this.setTime.bind(this)}(坑,要bind)
                 onError={this.videoError}
                 style={styles.fullScreen}
              />

上面是我自己项目里的Video组件,好多都不懂,慢慢学习中吧

弄了这么多天就两个页面还没有弄完,我滴娘哎~~~

0

评论 (0)

取消