아래와 같이 defaultProps를 지정하고 부모속성에서 사용해보자!
props에서 받아온 값을 활용하여, css 속성을 건드려보았다.
import React from "react";
import styled from "styled-components";
const Text = ({ bold, color, size, children }) => {
const styles = { bold, color, size };
return (
<>
<P {...styles}>{children}</P>
</>
);
};
Text.defaultProps = {
children: null,
bold: false,
color: "#222831",
size: "14px",
};
const P = styled.p`
color: ${props => props.color};
font-size: ${props => props.size};
//bold로 넘어온값이 true면 600 false면 400입니다.
font-weight: ${props => (props.bold ? "600" : "400")};
`;
export default Text;
아래는 똑같은 Text 컴포넌트에 bold 속성을 주고, 주지 않았다.
결과물은 보시다싶이 다르다. 위 bold속성을 지정한 결과물이다.
자세히 보기위해 개발자도구로 bold속성을 지정한 엘리먼트를 확인해보자 기본적으로 설정한 color와 font-size가 들어갔다. bold 속성을 가진 엘리먼트는 font-weight가 600으로 지정이 되어있다.
bold라는 속성만 입력하면 어떠한 결과값이 반환되는지 알아보기 위해 콘솔을 찍어보았다.
아래의 값에 따라 bold라는 속성을 넣으면 true가 되고, font-size의 조건에 따라 font-weight를 600으로 설정될 수 있다.
'📝 꾸준함이 무기 > React' 카테고리의 다른 글
머테리얼ui의 Date Time Picker와 Moment.js (0) | 2021.08.11 |
---|---|
부모컴포넌트에서 자식컴포넌트에게 함수를 넘겨주려면? (0) | 2021.07.03 |
<>와 <React.Fragments>의 차이점 (2) | 2021.07.03 |
Styled-components에서 css 변수 사용하는 법 (0) | 2021.07.03 |
컴포넌트의 라이프사이클 메서드 (0) | 2021.03.23 |