私のコードでネイティブに反応するときに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'を評価しています)
読んでくれてありがとう;)
PropTypes
を別のパッケージに移動しました。使用する prop-types
パッケージ。
詳細 ここ 。
注:
React.PropTypes
はReact v15.5から別のパッケージに移動しました。代わりに prop-typesライブラリ を使用してください。変換を自動化するcodemodスクリプトを提供しています。
はい、PropTypesはバージョン15.xから廃止されました。パッケージをインストールする必要があります。
npm install prop-types
それをインポートします。
import PropTypes from 'prop-types';
最新の反応ネイティブで更新されていないノードモジュールをインストールすると、proptypeがインポートされるすべてのjsファイルが変更されることがあります。
replace
import {PropTypes} from 'react';
with
import PropTypes from 'prop-types';
import PropTypes from 'prop-types';
この種の問題に直面した場合、これは役に立ちます。最新の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をアンインストールして最新バージョンで再インストールし、最終的にエラーを解消しました。