Rumah > hujung hadapan web > tutorial js > React-Native中props用法详解

React-Native中props用法详解

巴扎黑
Lepaskan: 2017-09-05 10:48:47
asal
1704 orang telah melayarinya

本篇文章主要介绍了React-Native中props具体使用详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

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

使用props

通过上一个页面传递

新建一个 PropsTest.js 文件


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

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


import PropsTest from &#39;./PropsTest&#39;

<PropsTest 
  name = &#39;XiaoMing&#39;
/>
Salin selepas log masuk

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

默认属性,以及它的作用

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


exprot default class PropsTestextends Component{
  static defaultProps={
    name: &#39;XiaoHong&#39;
  }
  render(){
    return <Text>{this.props.name}</Text>
  }
}
Salin selepas log masuk

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

对props进行约束和检查


exprot default class PropsTestextends Component{
  static defaultProps={
    name: &#39;XiaoHong&#39;
  }
  static propTypes={
    name: PropTypes.string,
    age: PropTypes.number,
    sex: PropTypes.string.isRequired
  }
  render(){
    return <Text>{this.props.name}</Text>
  }
}
Salin selepas log masuk

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

isRequired 可以指定必填项

注意:

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

props延伸操作符

ES6的最新语法

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


params = {name: &#39;XiaoZhang&#39;, age: 18, sex: &#39;男&#39;}

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

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


<PropsTest
  {...params}
/>
Salin selepas log masuk

非常的简洁

props解构赋值

ES6的最新语法

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


var {name, age} = params;

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

{name}或{age}

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

{params.name}或{params.age}
Salin selepas log masuk

Atas ialah kandungan terperinci React-Native中props用法详解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan