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 相关文章推荐
类之Prototype.js学习
Jun 13 Javascript
什么是JavaScript
Aug 13 Javascript
基于jQuery的ajax功能实现web service的json转化
Aug 29 Javascript
详解AngularJS中的作用域
Jun 17 Javascript
关于Jquery中的事件绑定总结
Oct 26 Javascript
自动适应iframe右边的高度
Dec 22 Javascript
jquery实现轮播图效果
Feb 13 Javascript
基于jQuery实现图片推拉门动画效果的两种方法
Aug 26 jQuery
学习Vue组件实例
Apr 28 Javascript
浅谈在react中如何实现扫码枪输入
Jul 04 Javascript
React中使用async validator进行表单验证的实例代码
Aug 17 Javascript
JavaScript检测浏览器是否支持CSS变量代码实例
Apr 03 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获取当前网址url并替换参数或网址的方法
2010/06/06 PHP
深入解析PHP内存管理之谁动了我的内存
2013/06/20 PHP
zend optimizer在wamp的基础上安装图文教程
2013/10/26 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(七)
2014/06/23 PHP
smarty的section嵌套循环用法示例
2016/05/28 PHP
PHP如何读取由JavaScript设置的Cookie
2017/03/22 PHP
laravel中短信发送验证码的实现方法
2018/04/25 PHP
jquery的map与get方法详解
2013/11/04 Javascript
jQuery使用height()获取高度需要注意的地方
2014/12/13 Javascript
Bootstrap每天必学之基础排版
2015/11/20 Javascript
APP中javascript+css3实现下拉刷新效果
2016/01/27 Javascript
vueJS简单的点击显示与隐藏的效果【实现代码】
2016/05/03 Javascript
Angular2 (RC5) 路由与导航详解
2016/09/21 Javascript
JS多文件上传的实例代码
2017/01/11 Javascript
bootstrap treeview 树形菜单带复选框及级联选择功能
2018/06/08 Javascript
解决Vue axios post请求,后台获取不到数据的问题方法
2018/08/11 Javascript
微信小程序页面缩放式侧滑效果的实现代码
2018/11/15 Javascript
JS+CSS3实现的简易钟表效果示例
2019/04/13 Javascript
JQuery事件委托原理与用法实例分析
2019/05/13 jQuery
Node.js API详解之 console模块用法详解
2020/05/12 Javascript
解决antd的Form组件setFieldsValue的警告问题
2020/10/29 Javascript
python中找出numpy array数组的最值及其索引方法
2018/04/17 Python
Django数据库连接丢失问题的解决方法
2018/12/29 Python
python 字典 setdefault()和get()方法比较详解
2019/08/07 Python
浅析Python数字类型和字符串类型的内置方法
2019/12/22 Python
正宗的日本零食和糖果订阅盒:Bokksu
2019/11/21 全球购物
如何填写个人简历自我评价
2013/12/10 职场文书
献爱心标语
2014/06/21 职场文书
四风查摆剖析材料
2014/10/10 职场文书
基层干部个人对照检查及整改措施
2014/10/28 职场文书
小学班主任自我评价
2015/03/11 职场文书
中学教师教学工作总结
2015/08/13 职场文书
MongoDB使用profile分析慢查询的步骤
2021/04/30 MongoDB
opencv-python图像配准(匹配和叠加)的实现
2021/06/23 Python
mongodb数据库迁移变更的解决方案
2021/09/04 MongoDB
SQL Server使用导出向导功能
2022/04/08 SQL Server