本篇文章主要介紹了React-Native中props具體使用詳解,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟著小編過來看看吧
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}
以上是React-Native中props用法詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!