Thief of Wealth

React 함수 인자를 array로 받기에 PropType을

<javascript />
TodoList.propTypes = { todoList: PropTypes.array.isRequired, };

으로 설정한다면

Prop type `array` is forbidden

이라는 에러를 접할 것이다.

 

이 이유는 airbnb eslint에서 금지하고 있기 때문이다. (정확히 말하면 eslint-plugin-react)

 

Why?

왜냐하면 PropTypes.array는 아래 경우가 모두 해당되기 떄문이다.

  • array of objects [{name:'ABC'},{name:'XYZ'}]
  • array of strings ['Lorem','Ipsum']
  • array of integers [2,4,66,4]
  • array of nested arrays [['d'],[[{name:'a'},{name:'b'}]]]
  • array of functions [foo,bar]

좀더 구체적으로 타입을 설정해주기 위해서 나같은 경우에는 아래와 같이 설정해줌으로써 에러를 해결할 수 있다.

<javascript />
TodoList.propTypes = { todoList: PropTypes.arrayOf(PropTypes.object).isRequired, };

 

한번 누르면 2시간동안 보이지 않아요 ㅎㅎ 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
원치 않을 경우 를 눌러주세요