加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

React Native错误汇总(持续更新)

发布时间:2020-12-15 03:24:39 所属栏目:百科 来源:网络整理
导读:错误1 Element type is invalid…: 错误描述: 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 ‘….’ 这个错误是很不容易发现的原因是

错误1 Element type is invalid…:

错误描述:
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 ‘….’


这个错误是很不容易发现的原因是由于ES5语法和ES6语法混乱搭配导致的。

ES5 语法 导出模块

module.exports = Page2;

ES5语法 引入模块

var NaviBar = require('./NaviBar');

ES6 导出语法

export  default class Page2 extends Component {

ES6 语法 导入模块

import NaviBar from './NaviBar';

两种语法混乱使用,比如用ES6 导出 用ES5导入,就可能会产生上述错误

错误2

错误描述:
cannot call a class as a function

这种错误一般都是手误导致的,错误直译就是不能调用一个类作为一个函数。
这个错误一般情况下是不好找的,可以看到 错误详情第二部分指向的是ImageEquallyEnlarge.js 中的第11行,这个文件是我创建的,第11行是构造方法:

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 = {
    ...
};

这样就导致了上面的错误。 有时候越是粗心犯的错误越是不好解决, 大家开发的时候一定要细心。

错误4

错误描述
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。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读