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下给元素添加事件的方法与代码
Aug 13 Javascript
基于jQuery的的一个隔行变色,鼠标移动变色的小插件
Jul 06 Javascript
jquery向.ashx文件post中文乱码问题的解决方法
Mar 28 Javascript
node.js中的console.error方法使用说明
Dec 10 Javascript
Bootstrap carousel轮转图的使用实例详解
May 17 Javascript
很棒的js选项卡切换效果
Jul 15 Javascript
jQuery Easyui DataGrid点击某个单元格即进入编辑状态焦点移开后保存数据
Aug 15 Javascript
基于Vue的文字跑马灯组件(npm 组件包)
May 24 Javascript
BootStrap的双日历时间控件使用
Jul 25 Javascript
create-react-app构建项目慢的解决方法
Mar 14 Javascript
在Vue 中使用Typescript的示例代码
Sep 10 Javascript
Node.js 中判断一个文件是否存在
Aug 24 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中接口与抽象类的区别
2013/06/08 PHP
apache中为php 设置虚拟目录
2014/12/17 PHP
php使用curl获取https请求的方法
2015/02/11 PHP
修改WordPress中文章编辑器的样式的方法详解
2015/12/15 PHP
微信JSSDK分享功能图文实例详解
2019/04/08 PHP
PHP笛卡尔积实现原理及代码实例
2020/12/09 PHP
jquery对表单操作2
2011/04/06 Javascript
JS实现文字放大效果的方法
2015/03/03 Javascript
jQuery实现圣诞节礼物动画案例解析
2016/12/25 Javascript
Angular.js自定义指令学习笔记实例
2017/02/24 Javascript
js中toString()和String()区别详解
2017/03/23 Javascript
gulp教程_从入门到项目中快速上手使用方法
2017/09/14 Javascript
解决vue-router进行build无法正常显示路由页面的问题
2018/03/06 Javascript
vue2.0 移动端实现下拉刷新和上拉加载更多的示例
2018/04/23 Javascript
微信小程序支付功能 php后台对接完整代码分享
2018/06/12 Javascript
vue+echarts实现可拖动节点的折线图(支持拖动方向和上下限的设置)
2019/04/12 Javascript
JavaScript遍历查找数组中最大值与最小值的方法示例
2019/05/24 Javascript
JavaScript数值类型知识汇总
2019/11/17 Javascript
微信小程序基于ColorUI构建皮皮虾短视频去水印组件
2020/11/04 Javascript
[01:00:59]VP VS VG Supermajor小组赛胜者组第二轮 BO3第二场 6.2
2018/06/03 DOTA
[58:59]完美世界DOTA2联赛PWL S3 access vs CPG 第一场 12.13
2020/12/16 DOTA
Python切片用法实例教程
2014/09/08 Python
Python读大数据txt
2016/03/28 Python
python3 实现的人人影视网站自动签到
2016/06/19 Python
python类的方法属性与方法属性的动态绑定代码详解
2017/12/27 Python
对Python中数组的几种使用方法总结
2018/06/28 Python
python redis 批量设置过期key过程解析
2019/11/26 Python
Sisley法国希思黎美国官方网站:享誉全球的奢华植物美容品牌
2020/06/27 全球购物
构造方法和其他方法的区别
2016/04/26 面试题
小孩百日宴答谢词
2014/01/15 职场文书
骨干教师考核方案
2014/05/09 职场文书
法制宣传月活动方案
2014/05/11 职场文书
python 实现的截屏工具
2021/05/08 Python
如何开发一个渐进式Web应用程序PWA
2021/05/10 Javascript
Python创建SQL数据库流程逐步讲解
2022/09/23 Python