为孩子设置PropType,但在父级上指定它吗?

时间:2019-01-24 14:51:11

标签: reactjs react-proptypes

我有一个Parent组件,可以有不同的孩子。当孩子在父母内部时,孩子必须有hash道具,但在孩子外面时则不能。

<Parent>
  // Many different components can go here
  <Something hash="#one" />
  <SomethingElse hash="#one" />
</Parent>

<App>
  <Something />
  <SomethingElse />
</App>

我可以为父级定义PropTypes,说任何子级必须具有hash道具吗?

1 个答案:

答案 0 :(得分:0)

您可以为propType定义一个自定义验证器,您可以在其中放置动态逻辑。

来自official documentation的示例代码:

// You can also specify a custom validator. It should return an Error
// object if the validation fails. Don't `console.warn` or throw, as this
// won't work inside `oneOfType`.
customProp: function(props, propName, componentName) {
  if (!/matchme/.test(props[propName])) {
    return new Error(
      'Invalid prop `' + propName + '` supplied to' +
      ' `' + componentName + '`. Validation failed.'
    );
  }
},