react native中props的使用

react native中props的使用

1、props的使用

1:父組件傳遞的方式javascript

在子組件中能夠用this.props訪問到父組件傳遞的值java

<View>
        <Text>
                {this.props.name}
         </Text>
                
 </View>

父組件定義傳遞的值 node

<MyComponent name='小明'/>

2:子組件定義默認props(父組件未傳值的狀況使用)react

static defaultProps = {
        name: '小紅'
}

  

2、props類型檢查

爲了其餘組件傳遞值得時候,保持類型的準確,須要進行類型檢查。npm

首先導入PropTypes數組

import propTypes from 'prop-types'

注意:propTypes已經從react中移除,須要單獨導入。npm install prop-types下載依賴包。propTypes開頭的p不須要大寫。ui

而後定義類型檢查this

static propTypes = {
        name: propTypes.number,
}

1:屬性是指定的 JavaScript 基本類型:對象

屬性: PropTypes.array,
屬性: PropTypes.bool,
屬性: PropTypes.func,
屬性: PropTypes.number,
屬性: PropTypes.object,
屬性: PropTypes.string,

2:要求屬性是可渲染節點blog

屬性: PropTypes.node,

3:要求屬性是某個 React 元素

屬性: PropTypes.element

4:要求屬性是某個指定類的實例

屬性: PropTypes.instanceOf(NameOfAClass),

5:要求屬性取值爲特定的幾個值

屬性: PropTypes.oneOf(['value1', 'value2'])

6:要求屬性能夠爲指定類型中的任意一個

屬性: PropTypes.oneOfType([
  PropTypes.bool,
  PropTypes.number,
  PropTypes.instanceOf(NameOfAClass),
])

7:要求屬性爲指定類型的數組

屬性: PropTypes.arrayOf(PropTypes.number)

8:要求屬性是一個有特定成員變量的對象

屬性: PropTypes.objectOf(PropTypes.number)

9:要求屬性是一個指定構成方式的對象

屬性: PropTypes.shape({
  color: PropTypes.string,
  fontSize: PropTypes.number,
}),

10:屬性能夠是任意類型

屬性: PropTypes.any

11:上面描述的 10 種語法,均可以經過在後面加上 isRequired 聲明它是必需的。

屬性: PropTypes.array.isRequired,
屬性: PropTypes.any.isRequired,
屬性: PropTypes.instanceOf(NameOfAClass).isRequired,

  

3、延展操做符和解構賦值

1:延展操做符

若是父組件須要傳遞多個參數,而這些參數都存在一個對象裏,咱們能夠使用延展操做符的方式傳值。

render() {
    let params = {
      name : '小紅',
      age: 11
    }
    return (
      <View>
        <MyComponent {...params}/>
        
      </View>
    );
  }

2:解構賦值

當咱們只須要取對象中部分屬性傳遞

render() {
    let params = {
      name : '小紅',
      age: 12,
      sex: '男'
    }
    let {name, age} = params
    return (
      <View>
        <MyComponent name={name} age={age}/>
      </View>
    );
  }
相關文章
相關標籤/搜索