React-Native中props具體使用詳解
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' />
注意: 上方代碼,均為代碼片段。
默認屬性,以及它的作用
由于props的屬性都是上個頁面?zhèn)鬟f的,所以無法修改它。但是我們可以在PropsTest文件中,給props定義一些默認的值。
exprot default class PropsTestextends Component{ static defaultProps={ name: 'XiaoHong' } render(){ return <Text>{this.props.name}</Text> } }
注意,defaultProps 需要使用static關(guān)鍵字來做靜態(tài)修飾。這樣,如果上個頁面沒有傳值,則顯示的是這個默認的屬性。
對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關(guān)鍵字來修飾。
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解構(gòu)賦值
ES6的最新語法
通過延伸操作符傳遞的對象,在另一個組件中想要從中獲取某幾個來使用,可以用解構(gòu)賦值的方式
var {name, age} = params; // 其他地方就可以直接引用name和age了 {name}或{age} // 這么做的好處,同樣是不需要使用如下的傳統(tǒng)方式 {params.name}或{params.age}
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
- react中props 的使用及進行限制的方法
- React三大屬性之props的使用詳解
- ES6 class類鏈式繼承,實例化及react super(props)原理詳解
- react高階組件添加和刪除props
- React性能優(yōu)化系列之減少props改變的實現(xiàn)方法
- 使用react render props實現(xiàn)倒計時的示例代碼
- 談?wù)凴eact中的Render Props模式
- 詳解React中傳入組件的props改變時更新組件的幾種實現(xiàn)方法
- react 父子組件之間通訊props
- React props和state屬性的具體使用方法
- 詳解如何在React組件“外”使用父組件的Props
- React教程之Props驗證的具體用法(Props Validation)
- 詳解React中Props的淺對比
相關(guān)文章
react項目升級報錯,babel報錯,.babelrc配置兼容等問題及解決
這篇文章主要介紹了react項目升級報錯,babel報錯,.babelrc配置兼容等問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-08-08