web-dev-qa-db-ja.com

PropTypes React Nativeはオブジェクトではありません

私のコードでネイティブに反応するときに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,
}

私のエラーは未定義ですオブジェクトではありません( '_react2.PropTypes.string'を評価しています)

読んでくれてありがとう;)

5
Eliott Robert

PropTypesを別のパッケージに移動しました。使用する prop-types パッケージ。

詳細 ここ

注:

React.PropTypesはReact v15.5から別のパッケージに移動しました。代わりに prop-typesライブラリ を使用してください。変換を自動化するcodemodスクリプトを提供しています。

10
bennygenel

はい、PropTypesはバージョン15.xから廃止されました。パッケージをインストールする必要があります。

npm install prop-types

それをインポートします。

import PropTypes from 'prop-types';
9
Luis Nolazco

最新の反応ネイティブで更新されていないノードモジュールをインストールすると、proptypeがインポートされるすべてのjsファイルが変更されることがあります。

replace
import {PropTypes} from 'react';
with
import PropTypes from 'prop-types';
0
Rajesh Nasit
import PropTypes from 'prop-types';
0
user11257634

この種の問題に直面した場合、これは役に立ちます。最新のreactネイティブバージョン(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をアンインストールして最新バージョンで再インストールし、最終的にエラーを解消しました。

0
Royal.O