728x90
props로 css 변경을 원할 때 사용하는 코드를 그 동안은
const Container = styled.div`
background-color: ${(props) => props.color};
`
<Container
color={event? "red" : "white"}
>테스트</Container>
위와 같이 작성을 해주었었다.
여기서 event는 내가 만든 함수라 각자 만든 함수명을 입력해주면 되는데, 이렇게 작성하게 될 경우 문제는 코드가 불필요하게 길어지고 인라인으로 css를 지정한다는 것이다.
✅ boolean으로 스타일 컴포넌트에서 css 적용하기
1️⃣ boolean으로 스타일 컴포넌트 + useState 작성
const Container = styled.div`
background-color: ${({event}) => event ? "red" : "white"};
`
const [event, setEvent] = useState<boolean>(false);
2️⃣ event 타입 지정해주기 + 스타일 컴포넌트에도 적용
interface ContainerProps {
event?: boolean;
}
const Container = styled.div<ContainerProps>`
...
`
3️⃣ 코드에 적용하기
<Container
evnet={event}
>테스트</Container>
굉장히 간단하게 코드가 변경된 것을 알 수 있다.
여러가지 css 기능을 함께 적용시키고싶으면, 아래와 같이 똑같이 적으면 된다.
const Container = styled.div`
background-color: ${({event}) => event ? "red" : "white"};
backdrop-filter: ${({event}) => event ? "blur(10px)" : "blur(0px)"};
`
728x90
'제니의 개발일지 > 도움이 되었던 것 정리' 카테고리의 다른 글
[리액트 React] 이미지 업로드 이름 찾아오기 (1) | 2023.01.02 |
---|---|
[React 리액트] 버튼 클릭 모달 열기, 닫기 (2) | 2022.12.28 |
TypeScript css 타입 지정해주기 (0) | 2022.12.14 |
IntersectionObserver 스크롤 감지 (0) | 2022.12.14 |
style-components로 이미지 불러오기 (0) | 2022.12.12 |