React-Native中props具体使用详解


Posted in Javascript onSeptember 04, 2017

props就是属性,是为了描述一个组件的特征而存在的。它是父组件传递给子组件的。

使用props

通过上一个页面传递

新建一个 PropsTest.js 文件

exprot default class PropsTestextendesComponent{
  render(){
    return <Text>{this.props.name}</Text>
  }
}

在上一个页面中使用PropsTest组件

import PropsTest from './PropsTest'

<PropsTest 
  name = 'XiaoMing'
/>

注意: 上方代码,均为代码片段。

默认属性,以及它的作用

由于props的属性都是上个页面传递的,所以无法修改它。但是我们可以在PropsTest文件中,给props定义一些默认的值。

exprot default class PropsTestextends Component{
  static defaultProps={
    name: 'XiaoHong'
  }
  render(){
    return <Text>{this.props.name}</Text>
  }
}

注意,defaultProps 需要使用static关键字来做静态修饰。这样,如果上个页面没有传值,则显示的是这个默认的属性。

对props进行约束和检查

exprot default class PropsTestextends Component{
  static defaultProps={
    name: 'XiaoHong'
  }
  static propTypes={
    name: PropTypes.string,
    age: PropTypes.number,
    sex: PropTypes.string.isRequired
  }
  render(){
    return <Text>{this.props.name}</Text>
  }
}

对props里面的属性进行类型判断,可以使用propTypes来做到,同样需要使用static关键字来修饰。

isRequired 可以指定必填项

注意:

propTypes属性 在 react 包中,需要先导入才能使用。

props延伸操作符

ES6的最新语法

假如我们的组件需要好多属性,如下:

params = {name: 'XiaoZhang', age: 18, sex: '男'}

// 如果需要传递给下一个页面需要:
<PropsTest
  name = {params.name}
  sex = {params.sex}
  age = {params.age}
/>
// 等等,这样如果属性特别多,代码将会变得难以维护。

在ES6中可以使用最新的延伸操作符特性

<PropsTest
  {...params}
/>

非常的简洁

props解构赋值

ES6的最新语法

通过延伸操作符传递的对象,在另一个组件中想要从中获取某几个来使用,可以用解构赋值的方式

var {name, age} = params;

// 其他地方就可以直接引用name和age了

{name}或{age}

// 这么做的好处,同样是不需要使用如下的传统方式

{params.name}或{params.age}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery触发a标签跳转事件示例代码
Jul 21 Javascript
JQuery解析HTML、JSON和XML实例详解
Mar 29 Javascript
javascript实现的猜数小游戏完整实例代码
May 10 Javascript
jQuery ajax请求struts action实现异步刷新
Apr 19 jQuery
深入浅析AngularJS中的一次性数据绑定 (bindonce)
May 11 Javascript
js自定义弹框插件的封装
Aug 24 Javascript
jQuery中 DOM节点操作方法大全
Oct 12 jQuery
Angular4集成ng2-file-upload的上传组件
Mar 14 Javascript
promise和co搭配生成器函数方式解决js代码异步流程的比较
May 25 Javascript
Vue 页面权限控制和登陆验证功能的实例代码
Jun 20 Javascript
JavaScript直接调用函数与call调用的区别实例分析
May 22 Javascript
JavaScript使用canvas绘制坐标和线
Apr 28 Javascript
用最简单的方法判断JavaScript中this的指向(推荐)
Sep 04 #Javascript
JS与HTML结合实现流程进度展示条思路详解
Sep 03 #Javascript
JS实现简单的选择题测评系统代码思路详解(demo)
Sep 03 #Javascript
JS实现页面内跳转的简单代码
Sep 03 #Javascript
初探JavaScript 面向对象(推荐)
Sep 03 #Javascript
jquery+css实现下拉列表功能
Sep 03 #jQuery
使用JavaScript实现点击循环切换图片效果
Sep 03 #Javascript
You might like
PHP中集成PayPal标准支付的实现方法分享
2012/02/06 PHP
PHP将二维数组某一个字段相同的数组合并起来的方法
2016/02/26 PHP
PHP获取中国时间(上海时区时间)及美国时间的方法
2017/02/23 PHP
php中时间函数date及常用的时间计算
2017/05/12 PHP
Prototype Selector对象学习
2009/07/23 Javascript
jquery下onpropertychange事件的绑定方法
2010/08/01 Javascript
不用构造函数(Constructor)new关键字也能实现JavaScript的面向对象
2013/01/11 Javascript
用jquery中插件dialog实现弹框效果实例代码
2013/11/15 Javascript
原生JS操作网页给p元素添加onclick事件及表格隔行变色
2013/12/01 Javascript
jQuery获取选中内容及设置元素属性的方法
2014/07/09 Javascript
JavaScript中的定时器之Item23的合理使用
2015/10/30 Javascript
jQuery使用each方法与for语句遍历数组示例
2016/06/16 Javascript
使用BootStrapValidator完成前端输入验证
2016/09/28 Javascript
vue.js动态数据绑定学习笔记
2017/05/19 Javascript
AngularJS实现自定义指令与控制器数据交互的方法示例
2017/06/19 Javascript
JavaScript实现时间表动态效果
2017/07/15 Javascript
使用vue2实现购物车和地址选配功能
2018/03/29 Javascript
玩转Koa之核心原理分析
2018/12/29 Javascript
layui富文本编辑器前端无法取值的解决方法
2019/09/18 Javascript
vue中添加与删除关键字搜索功能
2019/10/12 Javascript
JavaScript实现栈结构Stack过程详解
2020/03/07 Javascript
Python3 max()函数基础用法
2019/02/19 Python
pandas中遍历dataframe的每一个元素的实现
2019/10/23 Python
python set集合使用方法解析
2019/11/05 Python
基于梯度爆炸的解决方法:clip gradient
2020/02/04 Python
Python基于opencv的简单图像轮廓形状识别(全网最简单最少代码)
2021/01/28 Python
python sleep和wait对比总结
2021/02/03 Python
python 第三方库paramiko的常用方式
2021/02/20 Python
英国家居用品和床上用品零售商:P&B Home
2020/01/16 全球购物
设置器与访问器的定义以及各自特点
2016/01/08 面试题
通信工程专业个人找工作求职信范文
2013/09/21 职场文书
2014年仓库管理员工作总结
2014/11/18 职场文书
谢师宴邀请函
2015/02/02 职场文书
单身申明具结书
2015/02/26 职场文书
丧事答谢词大全
2015/09/30 职场文书
JUnit5常用注解的使用
2021/07/02 Java/Android