Node_modulesフォルダーを削除して再インストールした後、LayoutPropTypes.jsファイルで理解できない問題に直面しています。
In node_modules/react-native/Libraries/StyleSheet/LayoutPropTypes.js
次の変数は未定義です:var ReactPropTypes = require('React').PropTypes;
反応ネイティブ:0.45.1反応:16.0.0-alpha.12
注:React.PropTypesは、React v15.5で非推奨になりました。代わりにprop-typesライブラリを使用してください。
prop-types パッケージを個別に追加する必要があります。 node_modules
フォルダーを削除してからreact
バージョンをアップグレードしたものをすべて再インストールしたため、エラーが発生し始めた可能性が高いです。
反応16.0.0-alpha.12
を使用していると確信していますか?
反応バージョンの前に^
がある場合はpackage.jsonを確認してください。もしあれば、おそらく最新の反応バージョンがインストールされています。これは現在16.0.0-alpha.13
であり、あなたが言うように壊れています(自分で問題が発生しました)。バージョンの前に^
があると、新しいマイナーバージョンとパッチバージョンをインストールできます。 ここで詳細を読むことができます 。
指定した正確なバージョンを維持するには、version。の前の^
を削除するだけで、package.jsonは次のようになります。
"dependencies": {
"react": "16.0.0-alpha.12",
"react-native": "0.45.1",
}
変更後は、必ずnode_modulesを再インストールしてください。
ReactはPropTypesに同梱されなくなりました。それをインストールする必要があります。
最初にprop-types
を実行してnpm i prop-types --save
パッケージをインストールします。
次に、次のようにprop-types
パッケージをコンポーネントに使用します。
import React from 'react'
import PropTypes from 'prop-types'
export const AwesomeComponent = props => {
return(
<h1>Hello {props.name}</h1>
)
}
AwesomeComponent.propTypes = {
name: PropTypes.string.isRequired
}
または、次のようなTypeScriptを使用している場合は、単にインターフェイスを使用します。
import * as React from 'react'
interface IAwesomeComponentProps {
name: string
}
export const AwesomeComponent: React.FC<IAwesomeComponentProps> = props => {
return(
<h1>Hello {props.name}</h1>
)
}
私には同様の問題があり、解決策はありません。 「prop-types」パッケージについての回答は無意味であり、問題はリアクションネイティブのソースコードに由来します。これは、node_modulesフォルダー内の反応するネイティブソースを手動で修正するオプションではありません。
これで、react-native 0.46.4に更新できます。このガイドに従ってください: https://facebook.github.io/react-native/docs/upgrading.html
私のpackage.jsonは次のようになります:
"react": "16.0.0-alpha.12",
"react-native": "0.46.4",