React PropTypes 与单元测试

React PropTypes vs Unit Testing

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 编写这种 prop 验证,还是坚持使用 PropTypes 进行浅层验证并将大部分工作用于单元测试更好?

给出

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,
};