web-dev-qa-db-fra.com

Comment déclarer le style dans les propTypes?

Lorsque la règle prohibid-prop-types est activée, eslint m'interdit d'utiliser style: React.PropTypes.object et l'utilisation de shape est suggérée.

Mais est-il vraiment nécessaire de définir toutes les propriétés disponibles à cet effet comme ceci?

DEMO.propTypes = {
    style: React.PropTypes.shape({
        color: React.PropTypes.string,
        fontSize: React.PropTypes.number,
        ...
    })
};

Trop de code de définition!

39
Howard
View.propTypes.style

ou

Text.propTypes.style

Cela ressemblerait à ceci:

DEMO.propTypes = {
    style: Text.propTypes.style,
    ...
};

https://facebook.github.io/react-native/releases/0.21/docs/style.html#pass-styles-around

31
tiagob

React Native contient maintenant ViewPropTypes, qui remplacera View.propTypes.style. Exemple d'utilisation:

import { ViewPropTypes } from 'react-native';

MyComponent.propTypes = {
  style: ViewPropTypes.style
};
29
NiFi

Une possibilité consiste à utiliser le paquet react-style-proptype comme ceci:

import stylePropType from 'react-style-proptype';

MyComponent.propTypes = {
  style: stylePropType,
};
13
David Weldon

Utilisez ViewPropTypes.style. View.propTypes est obsolète

1
Matt Stow

J'utilise habituellement PropTypes.objectOf(PropTypes.string) sans avoir besoin de définir tous les styles css.

0
Jalal

Prolonger la réponse @ jalal246:

PropTypes.objectOf(PropTypes.oneOfType([
    PropTypes.string,
    PropTypes.number,
]))

Ceci peut être utilisé pour les styles Web (référez-vous à d'autres réponses pour React-native) sans avoir à utiliser un autre package pour cela.

0
Vivek