我有一个Parent组件,可以有不同的孩子。当孩子在父母内部时,孩子必须有hash
道具,但在孩子外面时则不能。
<Parent>
// Many different components can go here
<Something hash="#one" />
<SomethingElse hash="#one" />
</Parent>
<App>
<Something />
<SomethingElse />
</App>
我可以为父级定义PropTypes,说任何子级必须具有hash
道具吗?
答案 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.'
);
}
},