错误描述:
Element type is invalid: expected a String(for built-in components) or a class/function(for composite components) but got:object. check the render method of ‘….’javascript
这个错误是很不容易发现的缘由是因为ES5语法和ES6语法混乱搭配致使的。php
ES5 语法 导出模块java
module.exports = Page2;
ES5语法 引入模块python
var NaviBar = require('./NaviBar');
ES6 导出语法react
export default class Page2 extends Component {
ES6 语法 导入模块json
import NaviBar from './NaviBar';
两种语法混乱使用, 好比用ES6 导出 用ES5导入, 就可能会产生上述错误react-native
错误描述:
cannot call a class as a function微信
这种错误通常都是手误致使的, 错误直译就是不能调用一个类做为一个函数。
这个错误通常状况下是很差找的,能够看到 错误详情第二部分指向的是ImageEquallyEnlarge.js 中的第11行, 这个文件是我建立的, 第11行是构造方法:markdown
constructor(props) { super(props); // 初始状态 this.state = { //状态机变量是一个style, 它将被用于定义显示图片的样式 style: {} };
this.onImageLayout=this.onImageLayout.bind(this);
}
而错误地方通常不是第11行致使的,
缘由不少, 我只列举下个人错误缘由:
这个文件我声明了一个名字叫ImageEquallyEnlarge的组件, 为了方便使用,我声明了两个属性:函数
//控件属性
ImageEquallyEnlarge.propTypes = {
originalWidth: React.PropTypes.number.isRequired,
originalHeight: React.PropTypes.number.isRequired
};
而产生的错误偏偏是由于这处我不当心写错了一个单词,propTypes写成了prototype
//控件属性
// 声明必需要有的图片原始宽度与高度
ImageEquallyEnlarge.prototype = {
...
};
这样就致使了上面的错误。 有时候越是粗心犯的错误越是很差解决, 你们开发的时候必定要细心。
错误描述
cannot read property ‘stringify’ of undefined
咱们解析json对象是会用到stringify
let studentData = require('./data/student.json');
let newJSONString=JSON.stringify(studentData);
stringify是JSON对象中的方法, JSON是JS自带的API,不要在React Native中引入了。若是你引入JSON默认就指向了一个空的引用就会报这个错
因此千万不要在代码里这么写:
import React, {Component} from 'react';
import {
AppRegistry,
StyleSheet,
View,
Text,
JSON //不要写JSON
} from 'react-native';
更多精彩请关注微信公众帐号likeDev,公众帐号名称:爱上Android。