Après avoir supprimé et réinstallé mon dossier node_modules, je suis confronté à un problème que je ne comprends pas dans le fichier LayoutPropTypes.js.
Dans node_modules/react-native/Libraries/StyleSheet/LayoutPropTypes.js
La variable suivante n'est pas définie: var ReactPropTypes = require('React').PropTypes;
react-native: 0.45.1 réagir: 16.0.0-alpha.12
React.PropTypes est maintenant obsolète:
Remarque: React.PropTypes est obsolète à partir de React v15.5. Utilisez plutôt la bibliothèque prop-types.
Vous devez ajouter le package prop-types séparément maintenant. L'erreur a probablement commencé à apparaître car vous avez supprimé votre node_modules
dossier puis a réinstallé tout ce qui a mis à jour votre version react
.
Etes-vous absolument sûr que vous utilisez react 16.0.0-alpha.12
?
Vérifiez votre package.json si vous avez un ^
avant la version de réaction, si vous l’avez déjà, il a probablement installé la dernière version de réaction, qui est actuellement 16.0.0-alpha.13
, dans lequel ça casse comme tu le dis (je viens d'avoir le problème moi-même). Ayant le ^
avant la version, lui permet d’installer les nouvelles versions mineures et correctives. Vous pouvez en lire plus ici .
Pour conserver la version exacte que vous spécifiez, supprimez simplement le ^
avant la version, afin que votre package.json ressemble à ceci:
"dependencies": {
"react": "16.0.0-alpha.12",
"react-native": "0.45.1",
}
N'oubliez pas de réinstaller vos node_modules après vos modifications.
React n'est plus livré avec PropTypes. Vous devrez l'installer.
Installez d'abord le prop-types
package en exécutant npm i prop-types --save
.
Ensuite, utilisez le prop-types
package dans votre composant comme ceci:
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
}
Ou utilisez simplement une interface si vous utilisez TypeScript comme ceci:
import * as React from 'react'
interface IAwesomeComponentProps {
name: string
}
export const AwesomeComponent: React.FC<IAwesomeComponentProps> = props => {
return(
<h1>Hello {props.name}</h1>
)
}
J'ai le même problème, pas de solution. Les réponses concernant le paquet 'prop-types' n'ont pas de sens, le problème vient du code source de react-native. Ce n'est pas une option pour corriger manuellement le code source natif de réaction dans le dossier node_modules.
Vous pouvez maintenant effectuer la mise à jour vers la version native 0.46.4, suivez simplement ce guide: https://facebook.github.io/react-native/docs/upgrading.html
mon package.json ressemble à ceci:
"react": "16.0.0-alpha.12",
"react-native": "0.46.4",