溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

React-Native中props怎么用

發(fā)布時間:2021-08-09 14:27:48 來源:億速云 閱讀:150 作者:小新 欄目:web開發(fā)

這篇文章將為大家詳細(xì)講解有關(guān)React-Native中props怎么用,小編覺得挺實(shí)用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

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

使用props

通過上一個頁面?zhèn)鬟f

新建一個 PropsTest.js 文件

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

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

import PropsTest from './PropsTest'

<PropsTest 
  name = 'XiaoMing'
/>

注意: 上方代碼,均為代碼片段。

默認(rèn)屬性,以及它的作用

由于props的屬性都是上個頁面?zhèn)鬟f的,所以無法修改它。但是我們可以在PropsTest文件中,給props定義一些默認(rèn)的值。

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

注意,defaultProps 需要使用static關(guān)鍵字來做靜態(tài)修飾。這樣,如果上個頁面沒有傳值,則顯示的是這個默認(rèn)的屬性。

對props進(jìn)行約束和檢查

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里面的屬性進(jìn)行類型判斷,可以使用propTypes來做到,同樣需要使用static關(guān)鍵字來修飾。

isRequired 可以指定必填項(xiàng)

注意:

propTypes屬性 在 react 包中,需要先導(dǎo)入才能使用。

props延伸操作符

ES6的最新語法

假如我們的組件需要好多屬性,如下:

params = {name: 'XiaoZhang', age: 18, sex: '男'}

// 如果需要傳遞給下一個頁面需要:
<PropsTest
  name = {params.name}
  sex = {params.sex}
  age = {params.age}
/>
// 等等,這樣如果屬性特別多,代碼將會變得難以維護(hù)。

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

<PropsTest
  {...params}
/>

非常的簡潔

props解構(gòu)賦值

ES6的最新語法

通過延伸操作符傳遞的對象,在另一個組件中想要從中獲取某幾個來使用,可以用解構(gòu)賦值的方式

var {name, age} = params;

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

{name}或{age}

// 這么做的好處,同樣是不需要使用如下的傳統(tǒng)方式

{params.name}或{params.age}

關(guān)于“React-Native中props怎么用”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI