React PropTypes: разрешить различные типы Проптипов для одной опоры
у меня есть компонент, который получает опору для своего размера. Опора может быть либо строкой, либо числом ex:"LARGE"
или 17
.
могу ли я позволить реагировать.Проптипы знают, что это может быть либо один, либо другой в проверке проптипов?
если я не укажу тип, я получу предупреждение:prop type `size` is invalid; it must be a function, usually from React.PropTypes.
MyComponent.propTypes = {
size: React.PropTypes
}
4 ответов
size: PropTypes.oneOfType([
PropTypes.string,
PropTypes.number
]),
подробнее: Проверка Типов С Помощью PropTypes
для целей документации лучше перечислить строковые значения, которые являются законными:
size: PropTypes.oneOfType([
PropTypes.number,
PropTypes.oneOf([ 'SMALL', 'LARGE' ]),
]),
import React from 'react'; <--as normal
import PropTypes from 'prop-types'; <--add this as a second line
App.propTypes = {
monkey: PropTypes.string, <--omit "React."
cat: PropTypes.number.isRequired <--omit "React."
};
Wrong: React.PropTypes.string
Right: PropTypes.string