Если React.PropTypes.shape
вы не можете получить требуемый уровень проверки типа, взгляните на tcomb-реагировать .
Он предоставляет toPropTypes()
функцию, которая позволяет проверять схему, определенную в библиотеке tcomb , используя поддержку React для определения пользовательских propTypes
валидаторов , выполняя валидации с использованием tcomb-validation .
Базовый пример из документации :
// define the component props
var MyProps = struct({
foo: Num,
bar: subtype(Str, function (s) { return s.length <= 3; }, 'Bar')
});
// a simple component
var MyComponent = React.createClass({
propTypes: toPropTypes(MyProps), // <--- !
render: function () {
return (
<div>
<div>Foo is: {this.props.foo}</div>
<div>Bar is: {this.props.bar}</div>
</div>
);
}
});