오류해결

[styled-components] props error 해결

2023. 9. 7. 22:41
목차
  1. 소문자 어쩌구 에러
  2. 무슨 뜻 인가요?
  3. 그래서 소문자로 바꾸면 뜨는 경고문
  4. 해결방법
  5. Ref

소문자 어쩌구 에러

Warning: React does not recognize the isVisible prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase isVisible instead. If you accidentally passed it from a parent component, remove it from the DOM element.

무슨 뜻 인가요?

리액트는 DOM 요소에서 isVisible property를 인식하지 않는다.

만약에 의도적으로 사용자 정의 속성으로써 DOM에 표시하려면 isVisible 대신 소문자 스팰링을 써라.

만약 부모 컴포넌트로부터 실수로 전달했다면 DOM 요소에서 삭제해라.

 

즉 React는 DOM 요소로 전달되는 모든 props들이 유효한 HTML 속성이어야 하는데

정의 되지 않는 속성을 사용하려니 경고문이 뜬 것입니다.

React는 camelCase로 DOM 속성으로 인식하는데

isVisible 처럼 camelCase의 속성 이름은 button요소의 속성으로 들어가게 됩니다.

 

그래서 소문자로 바꾸면 뜨는 경고문

해결방법

1. @emotion/is-prop-valid 패키지를 설치하고 StyleSheetManager를 사용

2. transient props(prefix `$` 키워드)를 사용해서 해당 prop을 필터링하면 DOM으로 전달되지 않습니다.

 

저는 간단하게 선언부와 호출부에 isVisible 대신 $isVisible로 작성하여 경고문을 없앴습니다.

<Button 
	$isSelected = { //$추가
	selectedCategory.categoryId === categories[index].categoryId
}/>

const Button = styled.button<{ $isSelected: boolean }>`
  border: ${(props) =>
    props.$isSelected //$추가
      ? '4px solid var(--color-pink-1)'
      : '4px solid transparent'};

  //나머지 생략
`;

Ref

https://styled-components.com/docs/api#transient-props

 

styled-components: API Reference

API Reference of styled-components

styled-components.com

https://github.com/styled-components/styled-components/issues/4049

 

it looks like an unknown prop is being sent through to the DOM, which will likely trigger a React console error. · Issue #4049

Hi everyone! Thanks for the incredible tool, guys! Could you please tell what to do if the prop is really needed for the underline react Button component?

github.com

 

'오류해결' 카테고리의 다른 글

프로젝트 브라우저 화면 내에서 이유없이 빈공간이 생긴다면  (2) 2023.09.09
validateDOMNesting(...): <a> cannot appear as a descendant of <a>.  (0) 2023.09.08
[react-query] 네트워크 요청은 한 번 콜백함수는 두 번 실행이 되는문제  (0) 2023.08.29
[netlify] Page not found가 뜬다면  (0) 2023.08.17
[React] import 경로 이슈  (0) 2023.03.24
  1. 소문자 어쩌구 에러
  2. 무슨 뜻 인가요?
  3. 그래서 소문자로 바꾸면 뜨는 경고문
  4. 해결방법
  5. Ref
'오류해결' 카테고리의 다른 글
  • 프로젝트 브라우저 화면 내에서 이유없이 빈공간이 생긴다면
  • validateDOMNesting(...): <a> cannot appear as a descendant of <a>.
  • [react-query] 네트워크 요청은 한 번 콜백함수는 두 번 실행이 되는문제
  • [netlify] Page not found가 뜬다면
Summer.dev
Summer.dev
프론트엔드 개발자 Summer 입니다! 피드백은 언제나 환영입니다.
Summer.dev
꾸준함이 무기
Summer.dev
전체
오늘
어제
  • 분류 전체보기
    • Projects
      • Next.js board-project
      • MOMO
    • 원티드
    • 우테코 프리코스
    • JavaScript
    • React
    • TypeScript
    • Node.js
    • Algorithm
      • 코플릿
      • 개념정리
    • 네트워크
    • 오류해결
    • 회고
    • 기술면접준비
    • git,github
    • 소소하게 궁금한것
    • Next.js Beta Docs 번역
    • 디자인패턴
    • 트러블슈팅
    • 번역

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 알고리즘
  • 메모이제이션

최근 댓글

최근 글

hELLO · Designed By 정상우.
Summer.dev
[styled-components] props error 해결
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.