Я использую объект данных в качестве реквизита для компонента в ReactJS.
<Field data={data} />
Я знаю, что легко проверить сам объект PropTypes:
propTypes: {
data: React.PropTypes.object
}
Но что, если я хочу проверить значения внутри? то есть. data.id, data.title?
props[propName]: React.PropTypes.number.required // etc...
React.PropTypes
сейчас устарела. Пожалуйста, используйтеPropTypes
изprop-types
пакета вместо. Больше здесьЕсли
React.PropTypes.shape
вы не можете получить требуемый уровень проверки типа, взгляните на tcomb-реагировать .Он предоставляет
toPropTypes()
функцию, которая позволяет проверять схему, определенную в библиотеке tcomb , используя поддержку React для определения пользовательскихpropTypes
валидаторов , выполняя валидации с использованием tcomb-validation .Базовый пример из документации :
источник
Хотел заметить, что вложение работает за пределы одного уровня. Это было полезно для меня при проверке параметров URL:
источник
id
требуется только при наличииmatch.params
объекта илиisRequired
каскад, то естьmatch
isRequired сparams
объектом сid
подпоркой? то есть, если параметры не были предоставлены, будет ли он все еще действительным?match
нужно иметьparams
иparams
нужно иметьid
».match
присутствует и еслиmatch
содержит,params
то требуется,params
содержит строкуid
.источник