PropTypes React Native不是对象

时间:2017-10-17 13:26:16

标签: reactjs react-native native react-proptypes

我的反应原生代码中的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,
}

我的错误未定义不是对象(评估&#39; _react2.PropTypes.string&#39;)

感谢您阅读;)

5 个答案:

答案 0 :(得分:9)

PropTypes移入单独的包中。使用prop-types包。

更多信息here

  

注意:

     自从React以来,

React.PropTypes已迁移到另一个包中   V15.5。请改用prop-types library。我们提供了一个   用于自动转换的codemod脚本。

答案 1 :(得分:7)

是的,PropTypes已从版本15.x弃用 你需要安装包:

npm install prop-types

然后导入它。

import PropTypes from 'prop-types';

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

如果您遇到此类问题,这将有所帮助。 在最新的React本机版本(0.58.3)中,Project包含的“ react-native-collapsible-bar”软件包有此错误

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并重新安装了最新版本,终于摆脱了错误。

答案 4 :(得分:0)

import PropTypes from 'prop-types';