react 中的PropTypes与DefaultProps
每个组件都有自己的props参数,这参数是从父组件接收的一些属性。那我们应该如何对参数的类型做校验,如何定义参数的默认值呢?
1.使用PropTypes校验父组件传过来的参数是否合法
import PropTypes from 'prop-types';
TodoItem.propTypes = {
content: PropTypes.string,
handleItemDelete: PropTypes.func,
index: PropTypes.number
}
如上面代码所示,先引用 proptypes,再为 TodoItem 组件校验从父组件接收过来的参数。一般开发的时候建议把 PropTypes 写上,这样传值不对的时候,就会有一个明显的警告,不容易遇到坑。
如果在子组件写了一个父组件传值中没有的参数,代码不会报任何错误,只不过参数没有接收,不会显示而已。对于没有传递过来的参数,子组件是不会进行校验的,但如果这个参数是必要的,我们可以进行强制校验
test: PropTypes.string.isRequired
isRequired 表示父组件必须要向子组件传递。
2. 使用 DefaultProps 给参数设置默认值
如果子组件要求父组件必须向子组件传递这个参数,但父组件没办法传递这个参数,可以给这个参数设置一个默认值。
import PropTypes from 'prop-types';
TodoItem.propTypes = {
content: PropTypes.string,
handleItemDelete: PropTypes.func,
index: PropTypes.number,
test: PropTypes.string.isRequired
}
TodoItem.defaultProps = {
test: 'hello~'
}
3. 如果要求这个参数不仅可以是 string 类型, 也可以是 number 类型
import PropTypes from 'prop-types';
TodoItem.propTypes = {
test: PropTypes.oneOfType([PropTypes.string, PropTypes.number])
}
arrayOf表示test是一个数组,数组里面的内容可以是string,也可以是number
import PropTypes from 'prop-types';
TodoItem.propTypes = {
test: PropTypes.arrayOf(PropTypes.string, PropTypes.number)
}
react 中的PropTypes与DefaultProps的更多相关文章
- react中使用prop-types检测props数据类型
一.为什么使用prop-types 在多人开发时,当被人使用自己定义的组件时,有可能出现类型传错的情况,而在自己的组件上加上prop-types,他可以对父组件传来的props进行检查,加入父组件中想 ...
- React中使用 PropTypes 进行类型检查
官方文档学习链接:https://zh-hans.reactjs.org/docs/typechecking-with-proptypes.html import React, { Component ...
- React中的PropTypes详解
propTypes用来规范props必须满足的类型,如果验证不通过将会有warn提示. React PropTypes的种类有: React.PropTypes.array // 队列 React.P ...
- react中PropTypes与DefaultProps的应用
每个组件都有自己的props参数,这参数是从父组件接收的一些属性,那么如何对参数的类型作校验.如何定义参数的默认值.这里涉及到两个基础的概念,叫做proptypes 和 defaultprops.子组 ...
- React中静态类型校验 - PropTypes
1.基本说明PropTypes定义为组件类自身的属性,用以定义prop的类型.在开发模式下,当提供一个不合法的值作为prop时,控制台会出现警告: 在产品模式下,为了性能考虑应忽略propTypes ...
- 【react】利用prop-types第三方库对组件的props中的变量进行类型检测
1.引言--JavaScript就是一个熊孩子 1.1对于JSer们来说,js是自由的,但同时又有许多让人烦恼的地方.javascript很多时候就是这么一个熊孩子,他很多时候并不会像C和java ...
- react PropTypes 与 DefaultProps
PropTypes 与 DefaultProps import React ,{ Component } from 'react'; import PropTypes from 'prop-types ...
- React中props
今天让我们开启新的篇章好吧,来搞一搞React,以下所有操作都是我个人的一些理解,如果有错吴还请指出,想要看更全的可以去React官网可能一下子好吧 昨天按摩没到位,导致今天身体不太行,撸码千万别苦了 ...
- React中的三大属性
一.前言: 属性1:state 属性2:props 属性3:ref 与事件处理 二.主要内容: 属性1:state 1,认识: 1) state 是组件对象中最重要的属性,值是一个对象(可以包含多个数 ...
随机推荐
- SQLFlow——一个强大的可视化SQL关系分析工具
SQLFlow 摘要 本文主要介绍SQLFlow是什么,以及它的功能及使用场景 SQLFlow是什么 SQLFlow是一个可视化的在线处理SQL对象依赖关系的工具,只需要上传你的SQL脚本,它可以自动 ...
- 1Spring注入小结
Spring注入小结 (在Application.xml中) Spring学习笔记 周芋杉2021/5/14 1.基本注入类型注入 注入前的准备 <bean id="#配置文件的唯一标 ...
- [Scala] 高级特性
泛型 泛型类 1 package day0603 2 3 class GenericClassInt { 4 private var content:Int=10 5 def set(value:In ...
- 【转载】打造基于 Centos 7.X 的 spice 服务器
[转载]打造基于 Centos 7.X 的 spice 服务器 https://segmentfault.com/a/1190000011991047
- SPEC 2000 整形和浮点性能测试结果是各项基准程序得分的几何平均值,几何平均值是 n 个数连乘之 后再开 n 次根号
SPEC 2000 能够生成多种格式的测试结果报表,包括 asc,ps,raw,pdf,html 等格式,报 表所在目录为/home/sepc2000all/result. 整形和浮点性能测试结果是 ...
- gpgj - 06.估值分析举例
06.估值分析举例 1.举个栗子-贵州茅台的护城河 品牌效益高 只有高档产品 不卖中低档,不会拉低公司收入 { "question": "我们来复习一下护城河要如何分 ...
- DLL重定向处理
说明 目前正在做的项目批次功能涉及第三方插件,而第三方插件需依赖4.* 版本的Newtonsoft.Json.dll,由于现有功能已经使用6.*版本的Newtonsoft.Json.dll,故采用了d ...
- xxl-job使用遇到的问题(二)
xxl-job使用遇到的问题(二) 关联阅读 xxl-job使用遇到的问题(一) 1.问题现象 最近有个老定时任务迁移到xxl-job的时候,遇到一个小问题.虽然很快解决,但是还是有必要记录一下~ j ...
- JavaScript正则表达式(深度)(Day_14)
忘不掉的是回忆,继续的是生活,错过的,就当是路过. 简介 正则表达式是用于匹配字符串中字符组合的模式.在 JavaScript中,正则表达式也是对象. 这些模式被用于 RegExp 的 exec 和 ...
- opencv——PCA(主要成分分析)数学原理推导
引言: 最近一直在学习主成分分析(PCA),所以想把最近学的一点知识整理一下,如果有不对的还请大家帮忙指正,共同学习. 首先我们知道当数据维度太大时,我们通常需要进行降维处理,降维处理的方式有很多种, ...