[ERR] propType {name} is not required, but has no corresponding defaultprops declaration

최경락 (K_ROCK_)·2022년 7월 6일
0

[ERR] propType {name} is not required, but has no corresponding defaultprops declaration

ERR

propType "msg" is not required, but has no corresponding defaultProps declaration  

WHEN

  • 모달 컴포넌트를 작성하는 중에 표시되는 메시지를 props 로 전달받고자 했고, 해당 props 를 선택적으로 입력 할 수 있게 해당 props 를 타입을 작성했다.
interface IProps {
  msg?: string; // 요기
  applyFn: () => void;
  dismissFn: () => void;
}

WHY

  • 에러메세지를 확인해보니, 해당 props 는 필수적인 props 가 아님에도, 그에 상응하는 기본 props 가 선언되어 있지 않아 생기는 문제였다.
  • 즉, props 전달이 되지 않으면 표시할 데이터가 없기 때문.

SOLVE

  • 해당 컴포넌트의 defaultProps 를 지정해 주는 것으로 해결 할 수 있었다.
TwoBtnModal.defaultProps = {
  msg: '메시지를 입력하세요.',
};
  • 혹은, 기본 props 를 지정하고 싶지 않다면 eslint 규칙을 아래와 같이 설정하여 에러를 피할 수 있다고 한다.
"rules": {
  "react/require-default-props": "off" // or "warn"
}

+

참고
https://stackoverflow.com/questions/64012257/proptype-name-is-not-required-but-has-no-corresponding-defaultprops-declarati

0개의 댓글