加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

reactjs – 如何在React组件PropTypes中定义替代必需属性?

发布时间:2020-12-15 16:19:35 所属栏目:百科 来源:网络整理
导读:这是用例:组件TableGroup应该要求用户指定data属性,该属性是要在表中呈现的对象数组或requestDataUrl属性,组件将从该属性获取该对象数组.简而言之,这两个属性中的一个是必需的,但不是两个.我怎么能在下面的component.propTypes对象中实现呢? TableGroup.pr
这是用例:组件TableGroup应该要求用户指定data属性,该属性是要在表中呈现的对象数组或requestDataUrl属性,组件将从该属性获取该对象数组.简而言之,这两个属性中的一个是必需的,但不是两个.我怎么能在下面的component.propTypes对象中实现呢?

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,data: dataOrRequest,requestUrlSource: dataOrRequest
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读