这是用例:组件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 }