개념/React(23.06.12~)
[React] styled component를 이용한 조건부 스타일링
Lethargin
2023. 7. 13. 20:35
선행지식 : props, props children
// 자식 컴포넌트(StBox) : 전달된 props를 받음
const StBox = styled.div`
width: 100px;
height: 100px;
border: 1px solid ${(props) => props.borderColor}; // 부모 컴포넌트에서 보낸 props를 받아 사용
margin: 20px;
`;
// 부모 컴포넌트(APP) : props를 통해 borderColor라는 값을 전달
const App = () => {
return (
<div>
<StBox borderColor="red">빨간 박스</StBox>
<StBox borderColor="green">초록 박스</StBox>
<StBox borderColor="blue">파랑 박스</StBox>
</div>
);
};
export default App;
=> 함수의 인자에서 props를 받아오고, props안에는 부모 컴포넌트에서 보낸 borderColor가 있습니다. 그것을 return 합니다. ${(props)⇒{ return props.borderColor }} 이렇게 리턴하면 (props)⇒{ return props.borderColor } 의 값이 === 'red' 가 되고 결국 브라우저는 border: 1px solid red 라는 코드로 인식하여 스타일링이 되는 것 입니다.
본격적으로, styled component를 이용한 조건부 스타일링
-props를 이용해서
⬇️
-switch, map을 이용해서 리팩토링
⬇️
+styled component 오류 추가
-<div>태그 속 form태그가 있는 구조이고, 스타일컴포넌트를 먹이려 하니 기본 기능이 안되더라. 근데 상위에 <div>요소를 추가해주니 잘됨..ㅋㅋ