Подтвердить что ты не робот

Как объявить стиль в propTypes?

Если включено правило forbid-prop-types, eslint запрещает мне использовать style: React.PropTypes.object и использовать shape.

Но действительно ли необходимо определить все доступные свойства для этой цели?

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

Слишком много кода определения!

4b9b3361

Ответ 1

React Native теперь содержит ViewPropTypes, который заменит View.propTypes.style. Пример использования:

import { ViewPropTypes } from 'react-native';

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

Ответ 3

Одна из возможностей заключается в использовании пакета react-style-proptype:

import stylePropType from 'react-style-proptype';

MyComponent.propTypes = {
  style: stylePropType,
};

Ответ 4

Используйте простой код, как показано ниже.

PropTypes.oneOfType([PropTypes.object, PropTypes.array])

Итак, вы можете применить к этому свой код.

DEMO.propTypes = {
    style: PropTypes.oneOfType([PropTypes.object, PropTypes.array]),
};

Проверено в RN> 0,57.

Ответ 5

Используйте ViewPropTypes.style. View.propTypes устарела

Ответ 6

Быстро и грязно/взломать

Расширяя @jalal246 ответ:

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

Это можно использовать для веб-стилей (см. другие ответы для React-native), не используя для этого другой пакет.

Ответ 7

Я обычно использую PropTypes.objectOf(PropTypes.string), нет необходимости определять весь стиль CSS.