React的PropTypes允许创建如下所示的自定义验证器:
static propTypes = {
myPassedArray: PropTypes.array.isRequired,
customProp: function(props, propName, componentName) {
if (!/matchme/.test(props[propName])) {
return new Error(
'Invalid prop `' + propName + '` supplied to' +
' `' + componentName + '`. Validation failed.'
);
}
},
}
例如,对于值:
[{propOne: 'string', propTwo: 2}, {propOne: 1, propTwo: 'value'}];
可以验证是否:
我是否应该使用PropTypes编写这种道具验证,或者最好坚持使用PropTypes进行浅层验证并将大部分工作专门用于单元测试?
答案 0 :(得分:0)
鉴于
cont myData = [{propOne: 'string', propTwo: 2}, {propOne: 1, propTwo: 'value'}];
这应该可以满足您的大部分要求
MyComponent.propTypes = {
myData: PropTypes.arrayOf(
PropTypes.shape({
propOne: PropTypes.string.isRequired,
propTwo: PropTypes.number.isRequired,
}),
).isRequired,
};