web-dev-qa-db-fra.com

PropTypes React Native n'est pas un objet

J'ai un problème avec PropTypes dans réagit nativement mon code:

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,
}

Mon erreur est indéfinie n'est pas un objet (évaluer '_react2.PropTypes.string')

Merci pour la lecture;)

4
Eliott Robert

PropTypes déplacé dans un package séparé. Utilisez le package prop-types.

Plus d'infos ici .

Remarque:

React.PropTypes est passé dans un paquet différent depuis React v15.5. Veuillez utiliser la bibliothèque prop-types à la place. Nous fournissons un script codemod pour automatiser la conversion.

8
bennygenel

Oui, PropTypes est déconseillé depuis la version 15.x vous devez installer le package:

npm install prop-types

puis importez-le.

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

Si vous installez un module de noeud qui n’est pas mis à jour avec la dernière version, vous devez le modifier dans chaque fichier js où proptype est importé

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

Si vous êtes confronté à ce type de problème, cela vous sera utile . Dans la dernière version native de 0.58.3, le projet inclus dans les paquets 'react-native-collapsible-bar' avait cette erreur

Undefined is not an object(evaluating 'React.PropTypes.oneOf')

Je pourrais trouver que ce module a aussi des dépendances ci-dessous.

"prop-types": "^15.5.10",
"react-native-vector-icons": "^3.3.0"

Premièrement, j'avais commenté ci-dessous le code dans BarCollapsible.js

   static propTypes = {
         style: View.propTypes.style,
         titleStyle: Text.propTypes.style,
         tintColor: PropTypes.string,
   }

Et puis, j'avais désinstallé les icônes vectorielles-réactif-natif, réinstallé avec la dernière version et enfin éliminé les erreurs.

0
Royal.O