📝 꾸준함이 무기/React

defaultProps로 스타일 지정하기

Cheri 2021. 7. 3. 11:29

아래와 같이 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으로 설정될 수 있다.