react-native问题与结局方案汇总

时间2018.10.11

项目中使用到的包

npm install react-native-deprecated-custom-components --save //navigator

①rn版本 0.57.2初始化项目无法运行

解决办法: 是用老版本rn初始化代码
react-native init ProjectName --version 0.52.1


②WebSocket / libfishhook.a 链接文件未找到

Xcode报错信息

通常编译报 Build input file cannot be found错误,说明该文件存放位置有问题,只需要移除之后,重新添加一下文件就可以编译通过。如下:


重新添加文件

③third-party: 'config.h' file not found 解决方案

在终端中运行下面两行语句
cd node_modules/react-native/third-party/glog-0.3.4
../../scripts/ios-configure-glog.sh

④解决Mac上adb: command not found问题

打开mac的terminal终端,输入 cd ~/ 【进入当前用户的home目录】
输入 touch .bash_profile 【如果没有.bash_profile这个文件,则创建一个这个文件】
输入 open .bash_profile 【打开我们创建的这个文件,此时应该弹出一个文本编辑框,如果是第一次配置环境,那么文本编辑框为空白】
在打开的文本编辑器中写入如下代码:

export ANDROID_HOME=/usr/local/opt/android-sdk
export PATH=${PATH}:${ANDROID_HOME}/tools
export PATH=${PATH}:${ANDROID_HOME}/platform-tools

注意4中的ANDROID_HOME应该根据自己的sdk路径来填写,其余可以直接复制。
至于sdk路径,可以打开Android Studio,在preference(Windows的setting)中搜索sdk来查看。
在终端中输入 source .bash_profile 【使我们的改动生效】
输入 adb 【验证是否完成配置,如果不显示 adb: command not found,说明配置完成 】

⑤.Cannot find module '@babel/runtime/helpers/builtin/interopRequireDefault'

7.0.0-beta.56版本有很大改变,改为使用7.0.0-beta.55解决,在package.json里面修改版本,然后使用meteor npm install命令重新安装模块,解决问题

package.json

⑥.react-native 0.44以后使用Navigator

npm install react-native-deprecated-custom-components --save
import Navigator from 'react-native-deprecated-custom-components';
//用到的地方使用
<Navigator.Navigator
              initialRoute={{ name: defaultName, component: defaultComponent }}
              configureScene={(route) => {
                return Navigator.Navigator.SceneConfigs.VerticalDownSwipeJump;
              }}
              renderScene={(route, navigator) => {
                let Component = route.component;
                return <Component {...route.params} navigator={navigator} />
              }} />

千万记得使用Navigator.Navigator,我一直直接使用<Navigator></Navigator>,总是报错,
Element type is invalid: expected a string (for built-in components) or a class/function (for composite components)
but got: object.这表明没有找到Navigator组件,查了好半天才找到问题所在


或者使用这种方式:

import CustomerComponents, {Navigator} from 'react-native-deprecated-custom-components';
<Navigator></Navigator>

⑦.升级ReactNative后PropTypes报错(evaluating '_react2.PropTypes.string')

升级ReactNative后PropTypes报错(evaluating '_react2.PropTypes.string')

在ReactNative中,自定义组件用到PropTypes来定义属性的数据类型,
PropTypes的几种用法

 React.PropTypes
 import {PropTypes} from 'react';
 import PropTypes from 'prop-types';

在ReactNative的Framework升级到0.50.3后,发现使用前两种方式已经不可以了。
 React.PropTypes
 import {PropTypes} from 'react';
evaluating '_react2.PropTypes.string'

这样的后果是出现的红屏错误
undefined is not an object(evaluating '_react2.PropTypes.string')

在依赖的node_modules中,看到了prop-types这个文件,并且使用

import PropTypes from 'prop-types';

确实也解决了上面的红屏错误。

在ReactNative的0.50.3中发现该问题,0.47.3之前版本没有这个问题,其他版本情况未知。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 今天晨读分享的书是《这样学习最有效》,主要介绍了三个方面:去芜存菁,记忆技巧,学习环境。我来做一个简单的总...
    凌凌喵阅读 193评论 0 2
  • 个人电脑就像货车 PCs are going to be like trucks. They are still ...
    Soyeah阅读 353评论 1 0
  • 2018年7月14日,湖州师范学院文学院“红色地标”行动暑期社会实践团队顶着烈日,经过长途跋涉,来到苏浙公...
    36f2faedf597阅读 142评论 0 0
  • 1、为了消费安全感,我们付出了这么大代价,典当自己的梦想,典当自己发展最快的时光。 思:发展什么都不能典当自己发展...
    行知乐阅读 1,106评论 0 1