devlog

フロントエンドエンジニアの技術ブログ

React Component における default props と props types の指定方法

default props

props を使用している React Component で props が渡されたなかった場合のフォールバックとして default props を指定する事ができます。
default props は、 [コンポーネント名].defaultProps = {}と指定します。
(functional component でも同様の指定)

import React, { Component } from 'react'

class User extends Component {
  render() {
    const {name, age} = this.props

    return (
      <dl>
        <dt>Name: </dt>
        <dd>{name}</dd>
        <dt>age: </dt>
        <dd>{age}</dd>
      </dl>
    )
  }
}

User.defaultProps = {
  name: 'no name',
  age: '-'
}

const App = () => {
  return (
    <div id="app">
      <User name="taro" age="20" />
      <User />
    </div>
  )
}

export default App

props types

React Component に渡される props の型チェックや必須チェックを prop-types モジュールを用いて行います。 github.com

import React, { Component } from 'react'
import PropTypes from 'prop-types'

class User extends Component {
  render() {
    const {name, age} = this.props

    return (
      <dl>
        <dt>Name: </dt>
        <dd>{name}</dd>
        <dt>age: </dt>
        <dd>{age}</dd>
      </dl>
    )
  }
}

User.propTypes = {
  name: PropTypes.string.isRequired,
  age: PropTypes.oneOfType([ // 複数の型を許容する場合
    PropTypes.string,
    PropTypes.number,
  ])
}

const App = () => {
  return (
    <div id="app">
      <User name="taro" age="20" />
    </div>
  )
}

export default App

@ 2019 devlog