【RN - 基础】之React Native常见问题及解决方案
unable to load script from assets index.android.bundle...
问题原因:
找不到Android项目中的assets文件夹。
解决方案:
1、在Android/app/src/main目录下创建一个空的assets文件夹
2、在RN项目根目录运行以下代码:
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
3、重新运行项目
Could not install the app on the device...
问题原因:
在Android项目中导入图片之后,有些图片不符合RN的读取规范,因此报错。
解决方案:
在Android项目app目录下的build.gradle文件中android{ }代码块内添加以下两行代码:
aaptOptions.cruncherEnabled = false
aaptOptions.useNewCruncher = false
this 引起的 Undefined is not an object
问题原因:
this指向的对象是直接包裹this的那个对象。有些时候如果调用this.setState()方法的this对象不是全局的this,就容易造成上述错误。
解决方案:
// 定义一个全局的thiz对象,指向最初的this
let thiz;
export default class MyPage extends Component<{}> {
constructor(props) {
super(props);
this.state = { activePage: 0 };
}
render() {
thiz = this;
return (
// ......
);
}
XXXXXXXXX(e) {
let currPage = XXXXXXX;
thiz.setState({ activePage: currPage });
}
}
NPM安装总出错
问题原因:
NPM下载镜像的问题。
解决方案:
打开cmd,依次输入下面两行代码:
npm config set registry https://registry.npm.taobao.org
npm info underscore
如果第二行代码输入完毕后回车显示result,则表示成功了。
The development server returned response error code: 500
问题原因:
React-Native包没有安装。
解决方案:
仔细检查项目,查找有没有什么包没有安装,安装完成后,问题消失。