React 屬性驗證


§ 沒有用到生命週期, state 內容簡單時, 用 Function 寫法驗證屬性

§ propTypes 驗證元件 props 型別

§ default Props 為元件 props 定義預設值

§ isRequired 必填, 沒有加上的話 isRequired 就要在 default Props 填上預設值

§ props型別:array, bool, func, number, object, string,element


範例

 import React from 'react';

  export default function Todo(props) {

    return (

      <h1>Hello, {props.name} {props.age}</h1>

    );
  }

  Todo.propTypes = {

    name: PropTypes.string,

    age: PropTypes.number.isRequired,
  };

  Todo.defaultProps = {

    name: 'jack',
  };


§ 有用到生命週期, state , 用 class 驗證屬性

export default class Hello extends React.Component {

  static propTypes = { 

    name: PropTypes.string.isRequired,  

    age: PropTypes.number,    ==> 沒有 isRequired 就要設定 defaultProps

    children: PropTypes.element,  ==> children 一定要用 element

  };


  static defaultProps = { 
    age: 18
  };


  render() {

    const {name, age, children} = this.props;  ===> 解構式

    return (

      <div>

        Hello, my name is {name} .  ===> { } 為變數

        my age is {age}.

        {children}

      </div>
    );
   }
  }

ReactDom.render (

  <Hello name=’Jack’>

    <div>                 --------
     <h2>xxxxxxx</h                               
       <p>xxxxxxxxxxx</p>         |==> 類 HTML ,children 的內容
     </div>               --------  

  </Hello>,

  document.getElementById(‘app’)
);

results matching ""

    No results matching ""