PropTypes React Native不是对象

问题描述 投票:5回答:5

我的反应原生代码我的PropTypes有问题:

import React, { Component, PropTypes } from 'react';
import { Text } from 'react-native';

export default class Star extends Component {
    render() {
        return ( <Text> Hello </Text> );
    }
}

Star.propTypes = {
    fullStar: PropTypes.string.isRequired,
    halfStar: PropTypes.string.isRequired,
    emptyStar: PropTypes.string.isRequired,
    half: PropTypes.bool,
    count: PropTypes.number,
    size: PropTypes.number,
}

Star.defaultProps = {
    fullStar: "",
    halfStar: "",
    emtyStar: "",
    half: 'true',
    count: 5,
    size: 30,
}

我的错误是undefined不是一个对象(评估'_react2.PropTypes.string')

谢谢你的阅读;)

reactjs react-native native react-proptypes
5个回答
9
投票

PropTypes搬进了单独的包裹。使用prop-types包。

更多信息here

注意:

自React v15.5以来,React.PropTypes已经进入了一个不同的包装。请改用prop-types library。我们提供了一个codemod脚本来自动转换。


8
投票

是的,从版本15.x弃用了PropTypes,您需要安装该软件包:

npm install prop-types

然后导入它。

import PropTypes from 'prop-types';

0
投票

有一段时间,如果您安装任何未使用最新反应本机进行更新的节点模块,那么您在导入proptype的每个js文件中都会进行更改

replace
import {PropTypes} from 'react';
with
import PropTypes from 'prop-types';

0
投票

如果你遇到这种问题,这将有所帮助。在最新的反应原生版本(0.58.3)中,包含'react-native-collapsible-bar'软件包的Project出现此错误

Undefined is not an object(evaluating 'React.PropTypes.oneOf')

我发现这个模块也有以下依赖关系。

"prop-types": "^15.5.10",
"react-native-vector-icons": "^3.3.0"

首先,我在BarCollapsible.js中对下面的代码进行了评论

   static propTypes = {
         style: View.propTypes.style,
         titleStyle: Text.propTypes.style,
         tintColor: PropTypes.string,
   }

然后我卸载了react-native-vector-icons并重新安装了最新版本,最终摆脱了错误。


0
投票
import PropTypes from 'prop-types';
© www.soinside.com 2019 - 2024. All rights reserved.