React的组件属性类 propTypes

作用:验证组件实例的属性是否符合要求

Todo.propTypes = { //isRequired  代表该参数是必须的
    remove: PropTypes.func.isRequired,  //必须而且必须是函数
    todo: PropTypes.object,     //非必须 可传可不传
    title: PropTypes.string.isRequired, 
};
var data = 123;
render( 
  <Todo title={data} />,  //此处验证不会通过
  document.body
);

组件的属性可以接收任意的值,数字,函数,字符串等

// 可以声明 prop 为指定的 JS 基本类型。默认
// 情况下没有isRequired,这些 prop 都是可传可不传的。
    optionalArray: React.PropTypes.array,
    optionalBool: React.PropTypes.bool,
    optionalFunc: React.PropTypes.func,
    optionalNumber: React.PropTypes.number,
    optionalObject: React.PropTypes.object,
    optionalString: React.PropTypes.string,

// 所有可以被渲染的对象:数字,
// 字符串,DOM 元素或包含这些类型的数组。
    optionalNode: React.PropTypes.node,

// React 元素
    optionalElement: React.PropTypes.element,

// 用 JS 的 instanceof 操作符声明 prop 为类的实例。
    optionalMessage: React.PropTypes.instanceOf(Message),

// 用 enum 来限制 prop 只接受指定的值。
    optionalEnum: React.PropTypes.oneOf(['News', 'Photos']),

// 指定的多个对象类型中的一个
    optionalUnion: React.PropTypes.oneOfType([
      React.PropTypes.string,
      React.PropTypes.number,
      React.PropTypes.instanceOf(Message)
    ]),

// 指定类型组成的数组
    optionalArrayOf: React.PropTypes.arrayOf(React.PropTypes.number),

// 指定类型的属性构成的对象
    optionalObjectOf: React.PropTypes.objectOf(React.PropTypes.number),

// 特定形状参数的对象
    optionalObjectWithShape: React.PropTypes.shape({
      color: React.PropTypes.string,
      fontSize: React.PropTypes.number
    }),

// 自定义验证器。如果验证失败需要返回一个 Error 对象。不要直接
// 使用 `console.warn` 或抛异常,因为这样 `oneOfType` 会失效。
    customProp: function(props, propName, componentName) {
      if (!/matchme/.test(props[propName])) {
        return new Error('Validation failed!');
      }
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 8,903评论 0 4
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,230评论 19 139
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 14,067评论 6 13
  • 于别人,三月三只是一个吃地菜煮鸡蛋的日子;于我,三月三却是一个痛入骨髓的记忆。 竟已七年了。这七年,我从不提及,也...
    左右麻麻阅读 2,144评论 0 0
  • 今天跟大家分享台湾的一位中医老师,JT叔叔跟据他自己的实践,总结而成的《五脏与情志》一书中的内容。书里主要讲了人体...
    2cc902f324d2阅读 11,000评论 2 7

友情链接更多精彩内容