Star Rating

맨땅헤딩! ㅣ 2023. 5. 10. 10:09

해당 포스트는 제로베이스 오프라인스쿨 진행 과정 중 React PairProgramming과제를 진행하며 회고를 정리하는 글이다.

 

- 현상

react-icon props를 줄 때  selected hovered hovered 에만 경고가 났다.

  

import { AiFillStar } from 'react-icons/ai';

const Star = styled(AiFillStar)`
	...
  ${props =>
    props.hovered && css`color: var(--hovered-color);`
	}

  ${props =>
    props.selected && css`color: var(--selected-color);`
	}
`;
<Star
  ...
  selected={i <= selected}
  hovered={i <= hovered}
	...
/>

- 발견

경고가 발생하는 경우는 세 가지 같다. 첫 번째는 HTML 표준 속성의 타입에 맞지 않는 값을 전달한 경우,

두 번째는 HTML 비표준 속성의 경우 props DOM에 전달하기 전에 `styled-components` 내부에서 자동으로 필터링 하는데, 필터링이 되는 경우 경고가 발생하는 것으로 보인다.

하지만 hovered는 왜 경고가 뜨는지 의문이다. 추후 더 공부가 필요 할 것으로 보인다.

selected HTML 표준 attribute기 때문에 오류가 나지 않은 것으로 보인다.

 

hovered 앞에 $를 붙여 해결하였다.

 

출처: https://developer.mozilla.org/ko/docs/Web/HTML/Attributes

 

  

...
${props =>
  props.$hovered && css`color: var(--hovered-color);
`}

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

   

 

- 배운점

prefix "$" 를 사용하게 되면, props 가 실제 DOM 요소에 전달되는 것을 막는 다는 것을 배웠다.

 

- 선언

발견 에서 아직 궁금증을 해결 하지 못한 부분이 있어 공부가 더 필요해 보인다.

'React > PairProgramming3 회고' 카테고리의 다른 글

Calendar & DatePicker  (0) 2023.05.10
Tree View  (0) 2023.05.10
Analog Clock  (0) 2023.05.10
Drag & Drop  (0) 2023.05.10
Accordion Menu  (0) 2023.05.10