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 相关文章推荐
Javascript Boolean、Nnumber、String 强制类型转换的区别详细介绍
Dec 13 Javascript
jquery实现弹出div,始终显示在屏幕正中间的简单实例
Mar 08 Javascript
JavaScript通过select动态更换图片的方法
Mar 23 Javascript
JQuery中上下文选择器实现方法
May 18 Javascript
JS常用字符串方法(推荐)
Jan 15 Javascript
JS实现鼠标移上去显示图片或微信二维码
Dec 14 Javascript
jQuery插件autocomplete使用详解
Feb 04 Javascript
springmvc接收jquery提交的数组数据代码分享
Oct 28 jQuery
vue动态绘制四分之三圆环图效果
Sep 03 Javascript
flexible.js实现移动端rem适配方案
Apr 07 Javascript
vue如何在用户要关闭当前网页时弹出提示的实现
May 31 Javascript
JS的深浅复制详细
Oct 16 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
在WAMP环境下搭建ZendDebugger php调试工具的方法
2011/07/18 PHP
php调用shell的方法
2014/11/05 PHP
PHP给文字内容中的关键字进行套红处理
2016/04/12 PHP
JSON字符串传到后台PHP处理问题的解决方法
2016/06/05 PHP
php 使用html5 XHR2实现上传文件与进度显示功能示例
2020/03/03 PHP
jquery 简单应用示例总结
2013/08/09 Javascript
javascript面向对象之定义成员方法实例分析
2015/01/13 Javascript
JavaScript里实用的原生API汇总
2015/05/14 Javascript
DIV随滚动条滚动而滚动的实现代码【推荐】
2016/04/12 Javascript
浅谈javascript中的 “ &amp;&amp; ” 和 “ || ”
2017/02/02 Javascript
微信小程序 刷新上拉下拉不会断详细介绍
2017/05/11 Javascript
JavaScript手风琴页面制作
2017/05/17 Javascript
基于JSONP原理解析(推荐)
2017/12/04 Javascript
将Sublime Text 3 添加到右键中的简单方法
2017/12/12 Javascript
vuejs router history 配置到iis的方法
2018/09/20 Javascript
8个有意思的JavaScript面试题
2019/07/30 Javascript
[51:26]VP vs VG 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
详解Python的Django框架中Manager方法的使用
2015/07/21 Python
python中join()方法介绍
2018/10/11 Python
Python3爬虫学习入门教程
2018/12/11 Python
nginx+uwsgi+django环境搭建的方法步骤
2019/11/25 Python
实例讲解使用SVG制作loading加载动画的方法
2016/04/05 HTML / CSS
Html5实现移动端、PC端 刮刮卡效果
2016/06/30 HTML / CSS
波兰最大的度假胜地和城市公寓租赁运营商:Sun & Snow
2018/10/18 全球购物
思想汇报范文
2013/11/04 职场文书
党校学习思想汇报
2014/01/06 职场文书
合同意向书范本
2014/07/30 职场文书
整顿机关作风心得体会
2014/09/10 职场文书
党员教师四风自我剖析材料
2014/09/30 职场文书
党员群众路线教育实践活动剖析材料
2014/10/10 职场文书
2014年党总支工作总结
2014/12/18 职场文书
后备干部推荐材料
2014/12/24 职场文书
小学生暑假安全公约
2015/07/14 职场文书
Python中异常处理用法
2021/11/27 Python
MySQL分区表管理命令汇总
2022/03/21 MySQL
JavaScript中的LHS和RHS分析详情
2022/04/06 Javascript