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的使用的更多相关文章

  1. React Native中组件的props和state

    一.组件的属性(props)和状态(state) 1.属性(props) 它是组件的不可变属性(组件自己不可以自己修改props). 组件自身定义了一组props作为对外提供的接口,展示一个组件时只需 ...

  2. [转] 「指尖上的魔法」 - 谈谈 React Native 中的手势

    http://gold.xitu.io/entry/55fa202960b28497519db23f React-Native是一款由Facebook开发并开源的框架,主要卖点是使用JavaScrip ...

  3. [转] 在React Native中使用ART

    http://bbs.reactnative.cn/topic/306/%E5%9C%A8react-native%E4%B8%AD%E4%BD%BF%E7%94%A8art 前半个月捣腾了一下Rea ...

  4. react native中使用echarts

    开发平台:mac pro node版本:v8.11.2 npm版本:6.4.1 react-native版本:0.57.8 native-echarts版本:^0.5.0 目标平台:android端收 ...

  5. 《React Native 精解与实战》书籍连载「React Native 中的生命周期」

    此文是我的出版书籍<React Native 精解与实战>连载分享,此书由机械工业出版社出版,书中详解了 React Native 框架底层原理.React Native 组件布局.组件与 ...

  6. react native中state和ref的使用

    react native中state和ref的使用 因props是只读的,页面中需要交互的情况我们就需要用到state. 一.如何使用state 1:初始化state 第一种方式: construct ...

  7. React Native中加载指示器组件ActivityIndicator使用方法

    这里讲一下React Native中的一个组件——ActivityIndicator,这是一个加载指示器,俗称菊花,很常见的,效果如下所示: 可以看到图中有两个加载指示器,一大一小,这是尺寸不是我设置 ...

  8. 在 React Native 中使用 Redux 架构

    前言 Redux 架构是 Flux 架构的一个变形,相对于 Flux,Redux 的复杂性相对较低,而且最为巧妙的是 React 应用可以看成由一个根组件连接着许多大大小小的组件的应用,Redux 也 ...

  9. react native 中的ListView

    ListView 的运用: 1.首先在react native中引入这个组件: 2.初始化的ListView 的相关属性: constructor(props) { super(props); con ...

随机推荐

  1. 【最新最全】为 iOS 和 Android 的真机和模拟器编译 Luajit 库

    编译 Luajit 库,的确是一个挑战.因为官网的教程,在当前版本的 Xcode 和 NDK 环境中,已经不适用了.以前只是编译了适用于真机的 Luajit 库.最近在尝试编译模拟器 Luajit 库 ...

  2. Angular7教程-06-页面与数据交互

    1. 本节说明 本节的内容会在上期搭建的框架基础上进行数据的填充,顺便回顾之前介绍过的插值表达式,属性绑定等知识,本节的数据只是在组件中模拟数据,后面会有专门的章节讲解如何从服务器获取数据. 2. 轮 ...

  3. Java并发编程(十一)常用工具

    Java为开发提供了很多有用的工具类,这些工具类可以帮助我们更加高效的编写并发程序,本篇我们将介绍这些实用工具的用法. ThreadLocal ThreadLocal类用于解决多线程共享一个变量的问题 ...

  4. CentOS7.6离线安装Redis5.0.4

    安装gcc-c++: 检查是否存在gcc-c++:rpm -qa|grep gcc-c++ 如果不存在就下载Linux-GC-C++文件: 访问镜像网站:http://mirrors.aliyun.c ...

  5. 自定义loading效果

    结合Font Awesome字体图标自定义loading效果 Font Awesome字体图标地址:http://www.fontawesome.com.cn/faicons/ 使用javascrip ...

  6. python写员工信息表作业笔记

    需求 流程图

  7. Go 学习之路:引用类型与值类型

    Golang中只有三种引用类型:slice(切片).map(字典).channel(管道): 引用类型 引用类型理解为(C语言):指针 值类型 值的拷贝 下面以值类型和slice(切片)例子可知: p ...

  8. 我与虚拟机的初次接触及初探Liux命令 20155338

    初识虚拟机及学习Linux命令的些许收获 虚拟机的安装 这个假期算是第一次正式的接触了虚拟机,以前在平时生活中也有听到过,但是真正自己动手安装虚拟机却是第一次,确实是既紧张又兴奋. 我是依据老师所发的 ...

  9. 20145226 《Java程序设计》第4周学习总结

    教材学习内容总结 学习目标 理解封装.继承.多态的关系 理解抽象类与接口的区别 掌握S.O.L.I.D原则 了解模式和设计模式 能正确覆盖方法 了解垃圾回收机制 掌握Object类 掌握enum 教材 ...

  10. nth-child()伪类选择器

    描述: 伪类:nth-child()的参数是an+b,如果按照w3.org上的描述,写成中文,很可能会让人头晕,再加上笔者的文笔水平有限,所以我决定避开an+b的说法,把它拆分成5种写法共5部分来说明 ...