React PropTypes:必须至少提供其中一个道具
React PropTypes: At least one of these props must be provided
假设我的组件有 2 个道具。
两者都不是必需的,本身,如果您愿意,可以同时提供两者。
但是您至少需要提供两个道具中的一个。
PropTypes 是否支持此验证规则?
如果是严格异或怎么办?
注意:我不是在谈论允许两种 类型 中的一种用于已知道具......这是我理解的 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`);
}
},
}
您可以添加进一步的逻辑来指定它们中的每一个是什么类型的道具
假设我的组件有 2 个道具。
两者都不是必需的,本身,如果您愿意,可以同时提供两者。 但是您至少需要提供两个道具中的一个。
PropTypes 是否支持此验证规则?
如果是严格异或怎么办?
注意:我不是在谈论允许两种 类型 中的一种用于已知道具......这是我理解的 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`);
}
},
}
您可以添加进一步的逻辑来指定它们中的每一个是什么类型的道具