[React] prop-types 적용 시 에러 발생 - TypeError: Cannot call a class as a function
개발/React 2019. 2. 17. 22:33prop-types을 통해 props의 타입을 체크하려고 했는데 에러가 발생했다.
클래스를 함수로 부를 수 없다? 뭔말인지 한참 찾다가 발견했다.
Todos.prototype = {
todos: PropTypes.array.isRequired
};
이렇게 작성했다.
자동생성이 아니라 하드코딩으로...
그런데, prototype으로 잘못 작성했다.
es6 이전 클래스 대신 사용하던 keyword이기 때문에 에러가 발생했다.
Todos.propTypes = {
todos: PropTypes.array.isRequired
};
이와같이 propTypes로 작성해야한다.
또 주의할 점! 대문자가 아니라, 소문자 propTypes 이다.
static으로 선언된 무엇인가보다.
그리고, 타입 체크시에는 설치했던 prop-types를 사용한다.
import PropTypes from "prop-types";
이렇게 props의 타입을 체크하게 되면,
잘못된 형식의 props가 들어오게 되면,
즉, 위에는 array인데 string이나 number 형태의 값이 넘겨지면,
(prop에 유효하지 않은 값이 전달되면)
자바스크립트 콘솔에 경고(Error)가 발생된다.
'개발 > React' 카테고리의 다른 글
[React] 리액트 JSX에서 HTML 자동완성(emmet) 적용하기 (1) | 2019.09.21 |
---|---|
[React] 리액트에서 컴포넌트 간 데이터의 전달 방법은 어떻게 될까? (0) | 2019.02.17 |
[React] 리액트 배열을 map할 때 key 생략 시 에러 발생! (0) | 2019.02.16 |
[React] You should not use <Link> outside a <Router> 에러 (0) | 2019.01.31 |
[React] material ui로 TextField 사용 중, 유효성(validation) 체크하는 방법 (0) | 2019.01.03 |