react native中props的使用
react native中props的使用
一、props的使用
1:父组件传递的方式
在子组件中可以用this.props访问到父组件传递的值
<View>
<Text>
{this.props.name}
</Text> </View>
父组件定义传递的值
<MyComponent name='小明'/>
2:子组件定义默认props(父组件未传值的情况使用)
static defaultProps = {
name: '小红'
}
二、props类型检查
为了其他组件传递值得时候,保持类型的准确,需要进行类型检查。
首先导入PropTypes
import propTypes from 'prop-types'
注意:propTypes已经从react中移除,需要单独导入。npm install prop-types下载依赖包。propTypes开头的p不需要大写。
然后定义类型检查
static propTypes = {
name: propTypes.number,
}
1:属性是指定的 JavaScript 基本类型:
属性: PropTypes.array,
属性: PropTypes.bool,
属性: PropTypes.func,
属性: PropTypes.number,
属性: PropTypes.object,
属性: PropTypes.string,
2:要求属性是可渲染节点
属性: PropTypes.node,
3:要求属性是某个 React 元素
属性: PropTypes.element
4:要求属性是某个指定类的实例
属性: PropTypes.instanceOf(NameOfAClass),
5:要求属性取值为特定的几个值
属性: PropTypes.oneOf(['value1', 'value2'])
6:要求属性可以为指定类型中的任意一个
属性: PropTypes.oneOfType([
PropTypes.bool,
PropTypes.number,
PropTypes.instanceOf(NameOfAClass),
])
7:要求属性为指定类型的数组
属性: PropTypes.arrayOf(PropTypes.number)
8:要求属性是一个有特定成员变量的对象
属性: PropTypes.objectOf(PropTypes.number)
9:要求属性是一个指定构成方式的对象
属性: PropTypes.shape({
color: PropTypes.string,
fontSize: PropTypes.number,
}),
10:属性可以是任意类型
属性: PropTypes.any
11:上面描述的 10 种语法,都可以通过在后面加上 isRequired 声明它是必需的。
属性: PropTypes.array.isRequired,
属性: PropTypes.any.isRequired,
属性: PropTypes.instanceOf(NameOfAClass).isRequired,
三、延展操作符和解构赋值
1:延展操作符
如果父组件需要传递多个参数,而这些参数都存在一个对象里,我们可以使用延展操作符的方式传值。
render() {
let params = {
name : '小红',
age: 11
}
return (
<View>
<MyComponent {...params}/> </View>
);
}
2:解构赋值
当我们只需要取对象中部分属性传递
render() {
let params = {
name : '小红',
age: 12,
sex: '男'
}
let {name, age} = params
return (
<View>
<MyComponent name={name} age={age}/>
</View>
);
}
react native中props的使用的更多相关文章
- React Native中组件的props和state
一.组件的属性(props)和状态(state) 1.属性(props) 它是组件的不可变属性(组件自己不可以自己修改props). 组件自身定义了一组props作为对外提供的接口,展示一个组件时只需 ...
- [转] 「指尖上的魔法」 - 谈谈 React Native 中的手势
http://gold.xitu.io/entry/55fa202960b28497519db23f React-Native是一款由Facebook开发并开源的框架,主要卖点是使用JavaScrip ...
- [转] 在React Native中使用ART
http://bbs.reactnative.cn/topic/306/%E5%9C%A8react-native%E4%B8%AD%E4%BD%BF%E7%94%A8art 前半个月捣腾了一下Rea ...
- react native中使用echarts
开发平台:mac pro node版本:v8.11.2 npm版本:6.4.1 react-native版本:0.57.8 native-echarts版本:^0.5.0 目标平台:android端收 ...
- 《React Native 精解与实战》书籍连载「React Native 中的生命周期」
此文是我的出版书籍<React Native 精解与实战>连载分享,此书由机械工业出版社出版,书中详解了 React Native 框架底层原理.React Native 组件布局.组件与 ...
- react native中state和ref的使用
react native中state和ref的使用 因props是只读的,页面中需要交互的情况我们就需要用到state. 一.如何使用state 1:初始化state 第一种方式: construct ...
- React Native中加载指示器组件ActivityIndicator使用方法
这里讲一下React Native中的一个组件——ActivityIndicator,这是一个加载指示器,俗称菊花,很常见的,效果如下所示: 可以看到图中有两个加载指示器,一大一小,这是尺寸不是我设置 ...
- 在 React Native 中使用 Redux 架构
前言 Redux 架构是 Flux 架构的一个变形,相对于 Flux,Redux 的复杂性相对较低,而且最为巧妙的是 React 应用可以看成由一个根组件连接着许多大大小小的组件的应用,Redux 也 ...
- react native 中的ListView
ListView 的运用: 1.首先在react native中引入这个组件: 2.初始化的ListView 的相关属性: constructor(props) { super(props); con ...
随机推荐
- Struts2+AJAX+JQuery 实现用户登入与注册功能
要求:必备知识:JAVA/Struts2,JS/JQuery,HTML/CSS基础语法:开发环境:MyEclipse 10 关于UI部分请查看下列链接,有详细制作步骤: 利用:before和:afte ...
- C++练习 | 运算符重载练习
#include <iostream> #include <cmath> #include <cstring> #include <iomanip> u ...
- linux 学习第十六天(Samba配置)
Samba 服务 yum install samba mv smb.conf smb.conf.bak cat smb.conf.bak | grep -v "#" | grep ...
- Python学习:16.Python面对对象(三、反射,构造方法,静态字段,静态方法)
一.构造方法 在使用类创建对象的时候(就是类后面加括号)就自动执行__init__方法. class A: def __init__(self): print('A') class B: def __ ...
- 网易云易盾CTO朱浩齐:我们是如何用AI赋能内容安全?
本文由 网易云发布. 5月19日,LiveVideoStack携手网易云易盾,共同打造了“娱乐多媒体开发应用实践”专题,帮助开发者和泛娱乐平台运营人员,提升技术能力,突破难点,拓展思路与视野. 在专 ...
- A1070
给出总价和需求量,求最大收益. 思路:求单价最高的,排序. #include<cstdio> #include<algorithm> using namespace std; ...
- 002---rest_framework认证组件
rest_framework认证组件 问题:有些API,需要用户登录才能访问,有些无需登录就能访问. 解决: a. 创建两个模型类:UserInfo---OneToOne---UsetToken b. ...
- 论 Python Opencv 中文路径及中文文件名图像文件读取的两种方式
python 2中对于中文字符的处理可谓是诟病已久,虽然python 3 使用统一编码解决了中文字符串的问题,但在使用opencv中imread函数读取中文路径图像文件时仍会报错. 1) 借助nump ...
- 对SSL一个疑问的新理解
看了很多关于Https/SSL的介绍,关于数字证书部分,我一直有个疑问:如果数字证书文件被别人拿到,那是不是就可以进行通讯了呢?如果这样,那整个安全机制就完全失去作用了.从开发的角度,我拿到别人的数字 ...
- React with webpack - part 1
http://jslog.com/2014/10/02/react-with-webpack-part-1/