React Native iOS问题解决

前言

近期在学习React Native 特开始着手遇到问题的解决方案,有问题及时留言,谢谢!!!

问题1:run 项目时遇到命令窗口出现:TypeError: Cannot read property ‘root’ of null

解决:打开终端,输入 brew update成功后再输入brew upgrade watchman关掉Xcode重新运行即可。

问题2:native 的(RCTResponseSenderBlock)callback注意回调的参数设置。

例如:callback(@[@”hello”]);

js端:

1
2
3
4
5
callback: function(ret) {
if (ret[0]) {
console.log(ret[0]);
}
},

打印结果为:h,如果改为callback(@[@[@”hello”]])打印结果才为hello。

问题3:iOS项目jsbundle打包,release包的js代码是混淆的。可以更改/Users/arnold/HFRCTUpdaterDemo/node_modules/react-native/local-cli/bundle/buildBundle.js 下的minify的选项。

临时方案:直接更改../node_modules/react-native/packager/react-native-xcode.sh 中的–dev true即可,注意该命令的执行必须在ios的文件夹中。

问题4:iOS和安卓对图片处理的区别。

iOS:
this.setState({source}),更改Image的资源。

安卓:
this.setNativeProps({src:’’}),更改资源。

问题5:native 的(RCTResponseSenderBlock)callback注意回调的参数设置。

例如:callback(@[@”hello”]);

js端:

1
2
3
4
5
callback: function(ret) {
if (ret[0]) {
console.log(ret[0]);
}
},

打印结果为:h,如果改为callback(@[@[@”hello”]])打印结果才为hello。

问题6:react native 调用组件报错:invalid directory /Users/node_modules/

解决:注意@providesModule 的重要性

问题7:NPM throws error “couldn’t read dependencies”?

解决:sudo npm install -g npm

问题8: No compatible version found: react-native-viewpager@^1.2.1

解决:

1
2
3
sudo npm cache clean -f
sudo npm install -g n
sudo n stable