【问题标题】:PropTypes React Native is not an objectPropTypes React Native 不是一个对象
【发布时间】:2018-03-29 05:10:27
【问题描述】:

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 is not an object (evalating '_react2.PropTypes.string')

感谢阅读;)

【问题讨论】:

    标签: reactjs react-native native react-proptypes


    【解决方案1】:
    import PropTypes from 'prop-types';
    

    【讨论】:

      【解决方案2】:

      如果您遇到此类问题,这将有所帮助。 在最新的 react native 版本(0.58.3)中,项目包含 '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 并重新安装了最新版本,终于摆脱了错误。

      【讨论】:

        【解决方案3】:

        有时,如果您安装任何未使用最新 react native 更新的节点模块,因为您在导入 proptype 的每个 js 文件中都有更改

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

        【讨论】:

          【解决方案4】:

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

          npm install prop-types
          

          然后导入它。

          import PropTypes from 'prop-types';
          

          【讨论】:

            【解决方案5】:

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

            更多信息here。

            注意:

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

            【讨论】:

            • 我这样做 import React, { Component, PropTypes } from 'react'; 然后再做 PropTypes.number 。我收到一个错误 undefined is not an object.(evalating PropTypes.number) 请查看我使用的是 React - v15.3.2 我需要进行更改吗?从 'prop-types' 导入 PropTypes;
            • @Saurabh 是的。
            • 但是根据网上的评论和文档,它不是从 React v15.5 弃用了吗?你能给我更多的见解吗?参考link
            • @Saurabh 没有看到代码很难给你一个解决方案。问题可能是由其他原因引起的。如果建议的答案不能解决您的问题,请随时针对您的案例提出更详细的新问题。
            • 即使在使用 import PropTypes from 'prop-types' 后我也面临同样的问题;" 谁能帮忙?
            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2018-11-12
            • 2017-09-19
            • 2021-10-27
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多