PropTypes使用
PropTypes防止后期代码传参数错误,所以加一个校验,

代码:
import React, {Component,PropTypes} from 'react';
import {View, Text, StyleSheet,TouchableOpacity} from 'react-native';
class CustomView extends Component {
static propTypes = {
name:PropTypes.string.isRequired,//姓名 isRequired必填项
like:PropTypes.array,//爱好
age:PropTypes.number,//年龄
adult:PropTypes.bool,//是否成年
sex: PropTypes.oneOf(['man', 'woman']),//性别
eat:PropTypes.func,//吃饭
object:PropTypes.shape({a: PropTypes.string, b: PropTypes.number}),//指定形式
arrayOf: PropTypes.arrayOf(PropTypes.number),//指定类型的数组
oneOfType: PropTypes.oneOfType([//指定其中一种类型
PropTypes.string,
PropTypes.number,
]),
objectOf: PropTypes.objectOf(PropTypes.number),//指定某种对象
}
eat(value){
this.props.eat("banana");
}
render() {
return (
<View style={styles.container}>
<Text>name:{this.props.name}</Text>
<Text>like:{this.props.like}</Text>
<Text>age:{this.props.age}</Text>
<Text>adult:{this.props.adult}</Text>
<Text>sex:{this.props.sex}</Text>
<Text>shape:a:{this.props.object.a}b:{this.props.object.b}</Text>
<Text>arrayOf:{this.props.arrayOf}</Text>
<Text>oneOfType:{this.props.oneOfType}</Text>
<Text>objectOf:{this.props.objectOf}</Text>
<TouchableOpacity onPress={()=>this.eat("banana")}>
<Text>eat</Text>
</TouchableOpacity>
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
alignItems:'center',
justifyContent: 'center'
},
});
使用:
eat(value){
alert(value)
}
render() {
return (
<CustomView
name="lpp"
like={['画画','唱歌']}
age={19}
adult={true}
sex="man"
object={{a:"aa",b:12}}
arrayOf={[1,2,3,4,5,6]}
oneOfType="好人"
objectOf={[5,6,8,9]}
eat={(value)=>this.eat(value)}
/>
);
}
/**
any: createAnyTypeChecker(),
element: createElementTypeChecker(),
instanceOf: createInstanceTypeChecker,
node: createNodeChecker(),
object: createPrimitiveTypeChecker('object'),
symbol: createPrimitiveTypeChecker('symbol'), string: createPrimitiveTypeChecker('string'),
array: createPrimitiveTypeChecker('array'),
number: createPrimitiveTypeChecker('number'),
bool: createPrimitiveTypeChecker('boolean'),
func: createPrimitiveTypeChecker('function'),
shape: createShapeTypeChecker
oneOf: createEnumTypeChecker,
arrayOf: createArrayOfTypeChecker,
objectOf: createObjectOfTypeChecker,
oneOfType: createUnionTypeChecker, */
PropTypes使用的更多相关文章
- react Props 验证 propTypes,
<body><!-- React 真实 DOM 将会插入到这里 --><div id="example"></div> <!- ...
- React组件属性部类(propTypes)校验
React组件属性类型(propTypes)校验 Prop 验证 随着应用不断变大,保证组件被正确使用变得非常有用.为此我们引入propTypes.React.PropTypes 提供很多验证器 (v ...
- React中的PropTypes详解
propTypes用来规范props必须满足的类型,如果验证不通过将会有warn提示. React PropTypes的种类有: React.PropTypes.array // 队列 React.P ...
- 正式学习React(五) Reactjs 的 PropTypes 使用方法
propTypes 使用來規範元件Props的型別與必需狀態 var Test = React.createClass({ propTypes: { // required requiredFunc: ...
- 【react】利用prop-types第三方库对组件的props中的变量进行类型检测
1.引言--JavaScript就是一个熊孩子 1.1对于JSer们来说,js是自由的,但同时又有许多让人烦恼的地方.javascript很多时候就是这么一个熊孩子,他很多时候并不会像C和java ...
- React Native 系列(六) -- PropTypes
前言 本系列是基于React Native版本号0.44.3写的.在我们之前的通过props实现组件间传值的时候,大家有没有发现在父组件传递值过去,在子控件获取props的时候没有提示,那么如何能实现 ...
- React——props的使用以及propTypes
组件的props是只读的,组件不能修改自己的props,在React中,组件可以接受任意的props,如函数,对象,基本类型以及react元素 一.props的使用 1.一些组件并不需要知道自己的ch ...
- React的类型检测PropTypes
React.propTypes:React.PropTypes 提供很多验证器来验证传入数据的有效性,当向props传入无效数据时,JavaScript 控制台会抛出警告. ; class MyTit ...
- React文档(十五)使用propTypes进行类型检查
注意: React.PropTypes 自 React v15.5 起已弃用.请使用 prop-types 库代替. 随着你的应用的开发,你会使用类型检查的方法来捕获很多bug.对于一些应用,你可以使 ...
- PropTypes验证器
PropTypes用于对类型的验证,从而更加容易捕获bug.在React v15.5之前,它内置React.PropTypes函数帮助解决,之后放弃支持,采用prop-types库定义. import ...
随机推荐
- java指纹识别+谷歌图片识别技术_源代码
主类: import java.awt.image.BufferedImage; import java.util.ArrayList; import java.util.List; public c ...
- sublime text plugins
Sublime Text 插件,HTML+CSS+JAVASCRIPT+JSON快速格式化: htmlpretty 快捷键:Ctrl+Shift+H Essential Sublime Text 2 ...
- ABBYY OCR技术教电脑阅读缅甸语(上)
缅甸联邦共和国,原名缅甸,是东南亚的一个国家,从1962年到2010年,缅甸一直被政变后上台的军政府统治,直至最近5年它才对外界开放,与其他国家建立了贸易与文化联系. 缅甸语由很多方言组成,但所有方言 ...
- MTK 自定义按键添加广播
一.给自定义按键添加广播 修改PhoneWindowManager.java中的interceptKeyBeforeDispatching方法 /frameworks/base/policy/src/ ...
- [Object Tracking] Contour Detection through Tensorflow running on smartphone
From: 手机端运行卷积神经网络的一次实践 -- 基于 TensorFlow 和 OpenCV 实现文档检测功能 貌似不错的东西:移动端视觉识别模型:MobileNets Holistically- ...
- [OpenCV] Samples 17: Floodfill
一种聚类方式,代码解析 #!/usr/bin/env python ''' Floodfill sample. Usage: floodfill.py [<image>] Click on ...
- 网络编程 -- RPC实现原理 -- Netty -- 迭代版本V4 -- 粘包拆包
网络编程 -- RPC实现原理 -- 目录 啦啦啦 V2——Netty -- new LengthFieldPrepender(2) : 设置数据包 2 字节的特征码 new LengthFieldB ...
- Spark RDD Transformation 简单用例(三)
cache和persist 将RDD数据进行存储,persist(newLevel: StorageLevel)设置了存储级别,cache()和persist()是相同的,存储级别为MEMORY_ON ...
- <target>.ID 和 <source>.ID 的属性冲突: DataType 属性不匹配
ORACLE数据库主键的数据类型为number ,如果不指定长度会有 Merge报 <target>.ID 和 <source>.ID 的属性冲突: DataType 属性不匹 ...
- tomcat启动项目报错:The specified JRE installation does not exist
在Build Path里设置好jre和各Library的顺序,代码无报错,启动时弹框,里面的信息是:The specified JRE installation does not exist. 后来想 ...