TypeError: undefined is not an object (evaluating '_react.default.defaultProps.object') - RN

本文解决了一个常见的ReactNative开发问题,即如何从defaultProps迁移到prop-types,以避免TypeError异常。通过详细步骤指导,包括安装prop-types库、引入并替换属性检查方式,帮助开发者顺利过渡。
TypeError: undefined is not an object (evaluating '_react.default.defaultProps.object')

在 ReactNative 项目开发中,起初对组件属性进行检测的时候使用了 defaultProps 属性,但抛出了如上的异常提示

 

解决办法

将如上 defaultProps 属性替换为 React 中的 prop-types 的属性即可;
注:React 自从 V15.5 版本后将 prop-types 独立分离,所以需要单独引入;

首先,安装 prop-types

npm install --save prop-types

其次,引入 prop-types,此处区分 ES 6 或 ES 5,写法上稍有一些出入
ES 6 方式

import PropTypes from 'prop-types';

ES 5方式

var PropTypes = require('prop-types');

最后,将 defaultProps 的地方替换为 prop-types,在需要的地方调用即可

static propTypes = {
        item : PropTypes.object, 
        width : PropTypes.number,
        height : PropTypes.number,
        backgroundColor : PropTypes.string,
        fontSize : PropTypes.number,
        // item : React.defaultProps.object, 
        // width : React.defaultProps.number,
        // height : React.defaultProps.number,
        // backgroundColor : React.defaultProps.string,
        // fontSize : React.defaultProps.number,
    };

以上便是此次分享的全部内容,希望能对大家有所帮助!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值