1. 程式人生 > >Raect Native之五 props的使用

Raect Native之五 props的使用

  1. 什麼是props?
    大多陣列件在建立時就可以使用各種引數來進行定製。用於定製的這些引數就稱為props

  2. 如何使用props?

    export default class PropsView extends Component {
        render() {
            var  params = {name:'zhangsan', age:19,sex:'女'}
            var {name,sex} = params;
            return <View>
                    {/* <PropsUse {...params}/> */}
                    <PropsUse name={name} sex={sex}/>
                </View>
        }
    }
    
       export default class PropsUse extends Component{
           static defaultProps={
              name:'小紅',
              age:10,
              sex:'男',
           }
       
           static propTypes={
              name:PropTypes.string,
              age:PropTypes.int,
              sex:PropTypes.string.isRequired,
           }
           render(){
              
               return <View>
                       <Text style={{fontSize:26}}>你好, { this.props.name} </Text>
                       <Text style={{fontSize:26}}>年齡: { this.props.age}</Text>
                       <Text style={{fontSize:26}}>性別: { this.props.sex}</Text>
               </View> 
           }
       }
    
  3. 什麼是預設屬性以及它的作用?
    static defaultProps 設定預設屬性,當前一個介面沒有資料傳過來時,
    使用預設賦值

      static defaultProps={
              name:'小紅',
              age:10,
              sex:'男',
           }
            ```
    
  4. 如何對props進行約束和檢查?
    PropTypes 進行約束和檢查
    name:PropTypes.string 資料型別進行約束
    sex:PropTypes.string.isRequired isRequired非null檢查

       import PropTypes from 'prop-types';
       static propTypes={
          name:PropTypes.string,
          age:PropTypes.int,
          sex:PropTypes.string.isRequired,
    }
    
    
  5. props的使用技巧

    1. 擴充套件運算子{…}
       var  params={name:'zhangsan', age:19,sex:'女'}
       {...params}
    
    1. 結構賦值
       var  params = {name:'zhangsan', age:19,sex:'女'}
       var {name,sex} = params;
       return <View>
                   <PropsUse name={name} sex={sex}/>
               </View>