blog-imgDucklog

styled-components) Props를 이용하여 스타일링하기 -2

styled-components) Props를 이용하여 스타일링하기 - 2

저번 글에 이어서 styled-components에 대한 글이다!

메뉴를 클릭했을 때 div가 길어지게 만드려고 한다.

const Menu =
  styled.div <
  { toggle: boolean } >
  `
  position: relative;
  padding: 20px 18px;
  min-height: 420px;
  overflow: hidden;
  height: auto;
  transition: min-height 0.4s ease;
  ${({ toggle }) =>
    toggle
      ? css`
          min-height: 700px;
          transition: min-height 0.4s ease;
        `
      : css``};
`;

위에 처럼 div안에 toogle이라는 state를 props로 전달할 수 있다.

toogle이 만약 true일 때 길이가 커지고 false면 작아지게 하려면

 ${({ toggle }) =>
    toggle
      ? css`
          min-height: 700px;
          transition: min-height 0.4s ease;
        `
      : css``};

이렇게 props 참/거짓에 따라서 style이 변경되게 짜줄 수 있다.


import React, {useState}from 'react';

const Home = () => {
    const [toggle, setToggle] = useState(false);

    const handleToggle = () => {
    setToggle((prev) => !prev);
  };

return
    (
    <>
        <Menu toggle={toggle} onClick={handleToggle}>
            <li>햄버거</li>
            <li>치즈버거</li>
            <li>더블버거</li>
            <li>쉬림프치즈버거</li>
        </Menu>
    <>
    )
}

이제 해당 Menu div에 toogle props를 전달해주고 토글값을 변경시켜주는 함수를 onClick 속성을 이용하여 넣어주면 메뉴를 클릭했을 때 div가 길어지도록 만들 수 있다!