PropTypes으로 데이터 형태 확인하기

데이터 형태 확인을 통해 많은 버그를 잡을 수 있다. 우선 객체내 각 요소에 부합하는 propTypes를 할당한다 



import React, { Component } from 'react';
import PropTypes from 'prop-types';
import './Movie.css';

class Movie extends Component {

    // 부모 컴포넌트에서 받은 데이터 형태를 규정하여 이와 다를 경우 에러가 발생한다
    static propTypes = {
        // isRequired는 필수사항으로 지정해준다. 부모컴포넌트에서 값이 없을 경우 오류발생
        title: PropTypes.string.isRequired,
        poster: PropTypes.string,
    }

    render() {
        return(
            <div>
                {/* MoviePoster 컴포넌트에 poster 값을 담아준다 */}
                <MoviePoster poster={this.props.poster} />
                {/* 부모컴포넌트에서 전달 받은 title 값을 출력한다 */}
                <h1>{this.props.title}</h1>
            </div>
        )
    }
}

class MoviePoster extends Component {
   
    // 부모 컴포넌트에서 받은 데이터를 체크하고, 지정한 타입과 다르면 에러 발생
    static propTypes = {
        poster: PropTypes.string.isRequired,
    }

    render() {
        return(
            // 부모컴포넌트인 Movie 컴포넌트에서 전달 받은 poster 값을 출력한다
            <img src={this.props.poster} />
        )
    }
}

export default Movie



객체내 각 요소에 PropTypes를 규정하면 데이터 형태를 확인한 후에 다음 단계로 넘어간다


  • PropTypes에는 string, number, bool, func 등 여러 타입을 사용할 수 있다.
  • isRequired를 사용하게 되면 해당 요소가 존재하지 않을시 에러를 발생시킨다. 따라서 반드시 요소 값을 입력해야한다.
  • PropTypes를 확인하고 유효한 경우에만 this.props.poster로 값이 전달된다.


'코딩 연습 > React' 카테고리의 다른 글

Component State with this.setState()  (0) 2019.01.10
Array.prototype.map() 활용하기  (0) 2019.01.07
블로그 이미지

쵸잇

,