React Native声明属性和属性确认
来源:互联网 发布:青城山景区旅游数据 编辑:程序博客网 时间:2024/05/16 15:37
属性声明
因为用React Native创建的自定义组件可以复用, 我们开发过程中可能一个项目组有多个人同时开发,其他同事可能会用到我们自定义的组件, 但是他们使用的时候很容易忘记使用某些属性,这时候我们应该在自定义组件中声明一些属性。
//自定义组件export default class ConfirmDialog extends Component { //....}ConfirmDialog.propTypes = { userConfirmed: React.PropTypes.func.isRequired, userCanceled: React.PropTypes.func.isRequired, amIStillAlive: React.PropTypes.func.isRequired, promptToUser:React.PropTypes.string.isRequired};
上面声明的属性都是 isRequired, 如果不传递这些属性程序会在开发阶段出现警告,开发阶段需要我们进行属性确认。
属性确认
属性确认只在开发阶段有效,上面我们声明了两种属性类型确认——func (函数),和string(字符串)。下面再来看看属性确认的语法:
一、要求属性是JavaScript基本类型
React.PropTypes.array;React.PropTypes.bool;React.PropTypes.func;React.PropTypes.number;React.PropTypes.object;React.PropTypes.string;
二、要求属性是可渲染节点
指数字,字符串,数字数组,字符串数组.
React.PropTypes.node
要求属性是某个React元素
React.PropTypes.element
要求属性是某个指定类的实例
React.PropTypes.instanceOf(NameOfClass)
要求属性取值为几个特定的值
React.PropTypes.oneOf(['值1','值2'])
属性可以为指定类型中的任意一个
React.PropTypes.oneOfType([ React.PropTypes.node, React.PropTypes.string ])
属性可以为指定类型的数组
React.PropTypes.arrayOf(React.PropTypes.number)
要求属性是一个有指定成员变量的对象
下面的语句要求传入的对象有一个成员变量是number类型.
React.PropTypes.objectOf(React.PropTypes.number)
要求属性是一个指定构成方式的对象
React.PropTypes.shape({ color : React.PropTypes.string, fontSize: React.PropTypes.number})
属性可以为任意类型
React.PropTypes.any
上面的10种语法,都可以通过在后面加上isRequired声明它是必需的.
属性默认值
我们还可以给属性指定一个默认值,当没有传递该属性时使用默认值,如:
ConfirmDialog.defaultProps = { promptToUser: '确定吗?'};
同时记得要将指定 promptToUser为必须的’isRequired’ 去掉.
阅读全文
0 0
- React Native声明属性和属性确认
- React Native声明属性和属性确认
- React Native之prop-types进行属性确认
- react-native css属性
- React Native 属性使用
- React Native中pointerEvent属性
- React Native style属性重载
- React Native 属性.样式.状态
- react native Image resizeMode属性
- React Native之Props属性
- React Native ScrollView 常用属性
- React Native之onLayout属性
- React-Native 属性设置props
- React-Native 动态属性state
- React Native从零开始(二)Flexbox布局,和布局属性
- React Native-3.React Native中的主要布局属性介绍和练习
- React Native-3.React Native中的主要布局属性介绍和练习
- [深入剖析React Native]React Native Flexbox属性讲解
- react.js的两种路由方式:HashRouter
- LeetCode
- Linux下安装jenkins
- $.ajax 方法中所有的参数和函数
- Ecology8二次开发:HTML表单给自定义浏览按钮添加弹窗前事件
- React Native声明属性和属性确认
- 解决CentOS7本地安装MySQL5.6.22缺少依赖问题
- 感知器学习算法
- Unique Binary Search Trees II问题及解法
- Activity启动过程全解析
- java中关于char[]数组输出问题
- DPDK ipv4 ip分片与重组
- ZBPHP 免费的招标信息网站大全
- 点击显示div 5秒后消失