这是用例:组件TableGroup应该要求用户指定data属性,该属性是要在表中呈现的对象数组或requestDataUrl属性,组件将从该属性获取该对象数组.简而言之,这两个属性中的一个是必需的,但不是两
TableGroup.propTypes = {
fieldNames: React.PropTypes.array.isRequired,
dataFields: React.PropTypes.array.isRequired,
uniqueField: React.PropTypes.string.isRequired,
data: React.PropTypes.array,
requestUrlSource: http://someurl/api/resource
}
要达到预期效果,请使用以下选项
function dataOrRequest(props, propName, componentName) {
return (!props.hasOwnProperty('data') &&
!props.hasOwnProperty('requestUrlSource'))
&& new Error(`Either "data" or "requestUrlSource" is required`);
}
TableGroup.propTypes = {
fieldNames: React.PropTypes.array.isRequired,
dataFields: React.PropTypes.array.isRequired,
uniqueField: React.PropTypes.string.isRequired,
data: dataOrRequest,
requestUrlSource: dataOrRequest
}
