一定要写PropTypes,切莫为了省事而不写
如果一个Props不是requied,一定在getDefaultProps中设置它
React.PropTypes主要用来验证组件接收到的props是否为正确的数据类型,如果不正确,console中就会出现对应的warning。出于性能方面的考虑,这个API只在开发环境下使用。

基本使用方法:

propTypes: {myArray: React.PropTypes.array,myBool: React.PropTypes.bool,myFunc: React.PropTypes.func,myNumber: React.PropTypes.number,myString: React.PropTypes.string,// You can chain any of the above with `isRequired` to make sure a warning// is shown if the prop isn't provided.requiredFunc: React.PropTypes.func.isRequired
}

假如我们props不是以上类型,而是拥有复杂结构的对象怎么办?比如下面这个:

{text: 'hello world',numbers: [5, 2, 7, 9],
}

当然,我们可以直接用React.PropTypes.object,但是对象内部的数据我们却无法验证。

propTypes: {myObject: React.PropTypes.object,
}

进阶使用方法:shape() 和 arrayOf()

propTypes: {myObject: React.PropTypes.shape({text: React.PropTypes.string,numbers: React.PropTypes.arrayOf(React.PropTypes.number),})
}

下面是一个更复杂的Props:

[{name: 'Zachary He',age: 13,married: true,},{name: 'Alice Yo',name: 17,},{name: 'Jonyu Me',age: 20,married: false,}
]

综合上面,写起来应该就不难了:

propTypes: {myArray: React.PropTypes.arrayOf(React.propTypes.shape({name: React.propTypes.string.isRequired,age: React.propTypes.number.isRequired,married: React.propTypes.bool}))
}

转载于:https://www.cnblogs.com/Lewiskycc/p/7411326.html

react使用 PropTypes 和 getDefaultProps()相关推荐

  1. [react] 使用PropTypes和Flow有什么区别?

    [react] 使用PropTypes和Flow有什么区别? Flow 是一个针对react项目所有 JavaScript 代码的静态类型检测器,需要单独添加依赖并手动运行 PropTypes是针对组 ...

  2. react 之 prop-types

    react 之 prop-types 原文地址 在开发过程当中,经常会用到Prop的type校验,但是React.PropTypes和React.createClass这两个功能在React 15.5 ...

  3. 如何使用验证 React 道具PropTypes

    Props 和 PropTypes 是在 React 组件之间传递只读属性的重要机制. 我们可以使用 React props(属性的缩写)将数据从一个组件发送到另一个组件.如果一个组件接收到错误类型的 ...

  4. react 使用 PropTypes 进行类型检查

    目录 前言 一.安装 prop-types 插件 二.PropTypes 的规则 1.PropTypes 的一系列验证 (1).检测 JS 原生类型 (2).检测任何元素 (3).检测 react 元 ...

  5. react中prop-types的使用

    什么是prop-types?prop代表父组件传递过来的值,types代表类型.简单来说就是用来校验父组件传递过来值的类型 首先你需要通过在终端npm/yarn install/add prop-ty ...

  6. React 的 PropTypes

    在 React 中,prop 是从外部传递给组件的数据,可以说是组件对外的一个接口属性,它也是应该有对应的规范的,比方说: 这个组件支持哪些 prop 每个 prop 应该是怎么样的格式 而 Reac ...

  7. React的PropTypes和DefaultProps

    文章目录 propTypes PropTypes的验证器 基本的JS类型 任何可以被渲染的元素 react元素 某个类的实例 枚举类型 指定多个类型 指定某个类型的数组 指定类型为对象且对象的属性是特 ...

  8. React基础—PropTypes类型检查

    1. PropTypes类型检查 自 React v15.5 起,React.PropTypes已移入另一个包中.请使用prop-types库代替. 这里使用的方式是手脚架方式创建的项目,即: > ...

  9. React高级-PropTypes校验传递值

    PropTypes的简单应用 我们在Xiaojiejie.js组件里传递了4个值,有字符串,有数字,有方法,这些都是可以使用PropTypes限制的.在使用需要先引入PropTypes. import ...

最新文章

  1. shell脚本实战 pdf_Shell脚本实战:日志关键字监控+自动告警
  2. 用 LaTeX 排版编程技术书籍的一些个人经验
  3. java.lang.ClassCastException: android.widget.LinearLayout$LayoutParams
  4. android web3j 代币查询_Android通过web3j以太坊智能合约交互
  5. Spring For All 顶级Spring综合社区服务平台
  6. windows用户账户类型
  7. java的ssh获取id,使用SSH公钥(id_dsa.pub)实现免密码登录
  8. 阶段1 语言基础+高级_1-3-Java语言高级_05-异常与多线程_第6节 Lambda表达式_3_编程思想转换体验Lambda的更优写法...
  9. gis地图数据获取91卫图免费获取方法
  10. ai怎么做盒子效果图_仅需5步!手把手教你如何用AI绘制3D效果形象
  11. 《.NET程序员面试秘籍》读书笔记
  12. 墨门云文件加密系统有哪些功能特点?
  13. linux命令 dmesg_如何在Linux上使用dmesg命令
  14. 详解数据血缘的「整体设计」与「评价方案」
  15. 是德科技DSOX2002A型号示波器的使用
  16. IROS2020开源软硬件!多激光雷达的协同定位建图及在线外参自标定
  17. 2016计算机考研经验,2016大连理工大学计算机考研经验(示例代码)
  18. 安卓设备远程管理软件
  19. win7计算机管理中没有本地用户,帮你win7系统计算机管理中没有本地用户和组的设置教程...
  20. 实现Ubuntu与Nvida Nano远程连接

热门文章

  1. 1、tomcat目录及端口规划实践
  2. git学习——Git 基础要点【转】
  3. 微软私有云分享(R2)5-域升级造成Hyper-V主机无法实时迁移
  4. 自动化运维之PSSH
  5. java笔记--关于线程同步(7种同步方式)
  6. 学习编程可以参考哪些网站?
  7. 使用HTML5的classList属性操作CSS类
  8. JAVA虚拟机内存不够解决办法
  9. jpa tutorials
  10. ORCLE 表中列的修改(非常全面哦)