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 相关文章推荐
js 金额格式化来回转换示例
Feb 23 Javascript
使用mouse事件实现简单的鼠标经过特效
Jan 30 Javascript
jquery中radio checked问题
Mar 16 Javascript
JQuery中DOM实现事件移除的方法
Jun 13 Javascript
JavaScript遍历求解数独问题的主要思路小结
Jun 12 Javascript
基于Bootstrap模态对话框只加载一次 remote 数据的解决方法
Jul 09 Javascript
JavaScript Date对象应用实例分享
Oct 30 Javascript
vue框架搭建之axios使用教程
Jul 11 Javascript
原生JS实现获取及修改CSS样式的方法
Sep 04 Javascript
详解ES6 Fetch API HTTP请求实用指南
Nov 14 Javascript
JS加载解析Markdown文档过程详解
May 19 Javascript
nginx配置域名后的二级目录访问不同项目的配置操作
Nov 06 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
使用淘宝IP库获取用户ip地理位置
2013/10/27 PHP
php多次include后导致全局变量global失效的解决方法
2015/02/28 PHP
PHP SPL标准库之文件操作(SplFileInfo和SplFileObject)实例
2015/05/11 PHP
php解析xml方法实例详解
2015/05/12 PHP
phpStudy 2016 使用教程详解(支持PHP7)
2017/10/18 PHP
PHP实现基于栈的后缀表达式求值功能
2017/11/10 PHP
Laravel 5.5 异常处理 &amp; 错误日志的解决
2019/10/17 PHP
js计数器代码
2006/11/04 Javascript
Javascript 面向对象(一)(共有方法,私有方法,特权方法)
2012/05/23 Javascript
基于jquery实现点击左右按钮图片横向滚动
2013/04/11 Javascript
javascript中直接写php代码的方法
2013/07/31 Javascript
中文输入法不触发onkeyup事件的解决办法
2014/07/09 Javascript
javascript实现拖放效果
2015/12/16 Javascript
你所未知的3种Node.js代码优化方式
2016/02/25 Javascript
Ext JS框架程序中阻止键盘触发回退或者刷新页面的代码分享
2016/06/07 Javascript
JavaScript实现瀑布流以及加载效果
2017/02/11 Javascript
在vue项目中引入highcharts图表的方法
2019/01/21 Javascript
Python中使用socket发送HTTP请求数据接收不完整问题解决方法
2015/02/04 Python
在Python中调用ggplot的三种方法
2015/04/08 Python
python僵尸进程产生的原因
2017/07/21 Python
深入探究Django中的Session与Cookie
2017/07/30 Python
python中从str中提取元素到list以及将list转换为str的方法
2018/06/26 Python
python flask 如何修改默认端口号的方法步骤
2019/07/12 Python
解决安装python3.7.4报错Can''t connect to HTTPS URL because the SSL module is not available
2019/07/31 Python
Django框架配置mysql数据库实现过程
2020/04/22 Python
关于h5中的fetch方法解读(小结)
2017/11/15 HTML / CSS
css animation配合SVG制作能量流动效果
2021/03/24 HTML / CSS
初中同学聚会邀请函
2014/02/03 职场文书
环境工程专业自荐信
2014/03/03 职场文书
《金子》教学反思
2014/04/13 职场文书
大学班级计划书
2014/04/29 职场文书
群众路线教育实践活动的心得体会
2014/09/03 职场文书
刘公岛导游词
2015/02/05 职场文书
升职自我推荐信范文
2015/03/25 职场文书
会计入职心得体会
2016/01/22 职场文书
Python实现滑雪小游戏
2021/09/25 Python