假设我的组件有 2 个 props。
两者都不是必需的,本身,如果您愿意,您可以同时提供两者。 但您需要至少提供这两个 Prop 中的一个。
PropTypes支持这个验证规则吗?
如果是严格的异或怎么办?
<小时/>注意:我并不是说允许已知 Prop 使用两种类型之一...这就是我的理解 PropTypes.oneOf(['News', 'Photos' ])
和 PropTypes.oneOfType([...types...])
正在讨论。
最佳答案
PropTypes 允许提供自定义验证,您可以在其中编写自己的逻辑和自己的错误,例如
MyComponent.propTypes = {
News: (props, propName, componentName) => {
if (!props.News && !props.Photos) {
return new Error(`One among News or Photos prop must be provided`);
}
},
Photos: (props, propName, componentName) => {
if (!props.News && !props.Photos) {
return new Error(`One among News or Photos prop must be provided`);
}
},
}
您可以添加更多逻辑来指定它们各自的类型
关于reactjs - React PropTypes : At least one of these props must be provided,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54751283/