web-dev-qa-db-fra.com

React PropTypes: Autorise différents types de PropTypes pour un accessoire

J'ai un composant qui reçoit un accessoire pour sa taille. Le prop peut être une chaîne ou un nombre ex: "LARGE" ou 17.

Puis-je informer React.PropTypes qu'il peut s'agir de l'un ou de l'autre dans la validation de propTypes?

Si je ne spécifie pas le type, je reçois un avertissement: prop type `size` is invalid; it must be a function, usually from React.PropTypes.

MyComponent.propTypes = {
    size: React.PropTypes
}
138
Kevin Amiranoff
size: PropTypes.oneOfType([
  PropTypes.string,
  PropTypes.number
]),

En savoir plus: Typechecking With PropTypes

374
Paweł Andruszków

À des fins de documentation, il est préférable de répertorier les valeurs de chaîne légales:

size: PropTypes.oneOfType([
    PropTypes.number,
    PropTypes.oneOf([ 'SMALL', 'LARGE' ]),
]),
8
cleong

Cela pourrait fonctionner pour vous:

height: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
6
CorrinaB