首頁  >  文章  >  web前端  >  React-Native中props用法詳解

React-Native中props用法詳解

巴扎黑
巴扎黑原創
2017-09-05 10:48:471637瀏覽

本篇文章主要介紹了React-Native中props具體使用詳解,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟著小編過來看看吧

props就是屬性,是為了描述一個元件的特徵而存在的。它是父元件傳遞給子元件的。

使用props

透過上一個頁面傳遞

#新一個PropsTest.js 檔案


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

在上一個頁面中使用PropsTest元件


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

<PropsTest 
  name = &#39;XiaoMing&#39;
/>

注意: 上方程式碼,皆為程式碼片段。

預設屬性,以及它的作用

由於props的屬性都是上個頁面傳遞的,所以無法修改它。但是我們可以在PropsTest檔案中,為props定義一些預設的值。


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

注意,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>
  }
}

對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}
/>
// 等等,这样如果属性特别多,代码将会变得难以维护。

在ES6中可以使用最新的延伸運算元特性


<PropsTest
  {...params}
/>

非常的簡潔

props解構賦值

ES6的最新語法

透過延伸運算子傳遞的對象,在另一個元件中想要從中取得某幾個來使用,可以用解構賦值的方式


var {name, age} = params;

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

{name}或{age}

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

{params.name}或{params.age}

以上是React-Native中props用法詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn