React에서 PropTypes deprecated 해결하기
npm으로 React을 새로 버전업 한 이후 아래와 같은 warning 메시지가 발생할때 해결 방법을 소개한다.
warning.js:36 Warning: Accessing PropTypes via the main React package is deprecated. Use the prop-types package from npm instead.
살펴보니, React (15.5.0)에서부터는 React의 main package에 PropTypes가 제거되고, 별도의 라이브러리를 사용하는 식으로 변경되었다.
홈페이지를 찾아보니 아래와 같이 prop-types
라이브러리를 별도로 설치해서 사용하라고 되어 있다.
React가 가이드하는 대로, prop-types
라이브러리를 설치해서 사용하면 간단히 해결된다.
해결방법
React의 prop-types library 을 설치하기
$ npm install --save prop-types
prop-types library 사용하기
import React from 'react';
import ReactDOM from 'react-dom';
// npm으로 설치 후, 아래와 같이 'prop-types'을 새로 import
import PropTypes from 'prop-types';
...
class TestComponent extends React.Component {
constructor(props) {
super(props);
}
render() {
return (
<div>
<div className='test-title'>
{this.props.label}
</div>
<div className='test-contents'>
{this.props.contents}
</div>
</div>
);
}
}
TestComponent.propTypes = {
label: PropTypes.string,
contents: PropTypes.element
};
기존에 React.PropTypes.<typeName>
으로 작성하던 부분을 PropTypes.<typeName>
형태로 작성하면 된다.