Comment déclarer le style dans les propTypes?

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

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

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

trop de code de définition!

35
demandé sur NiFi 2016-01-06 08:35:26

6 réponses

View.propTypes.style

ou

Text.propTypes.style

Il devrait ressembler à ceci:

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

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

28
répondu tiagob 2017-09-20 16:12:01

Réagir Natif contient maintenant ViewPropTypes remplacer View.propTypes.style. Exemple d'utilisation:

import { ViewPropTypes } from 'react-native';

MyComponent.propTypes = {
  style: ViewPropTypes.style
};
16
répondu NiFi 2017-12-04 09:08:42

Une possibilité est d'utiliser la méthode réagissent-style-proptype package:

import stylePropType from 'react-style-proptype';

MyComponent.propTypes = {
  style: stylePropType,
};
13
répondu David Weldon 2016-09-21 23:18:29

Utiliser ViewPropTypes.style. View.propTypes a été dépréciées

2
répondu Matt Stow 2018-04-23 01:49:07

j'ai l'habitude d'utiliser PropTypes.objectOf(PropTypes.string) pas besoin de définir tout le style css.

0
répondu jalal246 2018-06-19 18:33:33

Extension de @jalal246 réponse:

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

cela peut être utilisé pour les styles web (référez d'autres réponses pour React-native) sans avoir à utiliser d'autres paquets pour cela.

0
répondu Vivek 2018-09-27 12:25:52