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!
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
React Native contient maintenant ViewPropTypes
, qui remplacera View.propTypes.style
. Exemple d'utilisation:
import { ViewPropTypes } from 'react-native';
MyComponent.propTypes = {
style: ViewPropTypes.style
};
Une possibilité consiste à utiliser le paquet react-style-proptype comme ceci:
import stylePropType from 'react-style-proptype';
MyComponent.propTypes = {
style: stylePropType,
};
Utilisez ViewPropTypes.style
. View.propTypes
est obsolète
J'utilise habituellement PropTypes.objectOf(PropTypes.string)
sans avoir besoin de définir tous les styles css.
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.