๐Ÿ”ฅ Trouble Shooting - React ์ปดํฌ๋„ŒํŠธ์˜ return๋ฌธ ์ตœ์ ํ™”: switch๋ฌธ ๋ถ„๋ฆฌํ•˜๊ธฐ

์Š˜ยท2025๋…„ 2์›” 6์ผ

๐Ÿ”ฅ Trouble Shooting

๋ชฉ๋ก ๋ณด๊ธฐ
6/23

๐Ÿ’ป ๋ฌธ์ œ ์ƒํ™ฉ

React ์ปดํฌ๋„ŒํŠธ์˜ return๋ฌธ ์•ˆ์—์„œ switch๋ฌธ์„ ์ง์ ‘ ์‚ฌ์šฉํ•˜๋ ค๋‹ค ๋ฐœ์ƒํ•œ ์—๋Ÿฌ

// โŒ ์ž˜๋ชป๋œ ๋ฐฉ์‹
const Button = ({ type }) => {
  return (
    switch(type) {
      case "add":
        return <AddButton>Add</AddButton>;
      // ...
    }
  );
};

๐Ÿ” ์›์ธ ๋ถ„์„

  1. React ์ปดํฌ๋„ŒํŠธ์˜ return๋ฌธ์€ ์„ ์–ธ์ ์ด์–ด์•ผ ํ•จ
  2. ๋ณต์žกํ•œ ์กฐ๊ฑด๋ฌธ์ด return ๋‚ด์— ์žˆ์œผ๋ฉด ๊ฐ€๋…์„ฑ ์ €ํ•˜
  3. ์ƒํƒœ ๋ณ€๊ฒฝ ์‹œ ๋ถˆํ•„์š”ํ•œ ์—ฐ์‚ฐ ๋ฐ˜๋ณต ๊ฐ€๋Šฅ์„ฑ

โœ… ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

๋ณ„๋„์˜ ๋ Œ๋”๋ง ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด ๋กœ์ง ๋ถ„๋ฆฌ

// โœ… ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉ์‹
const Button = ({ type }) => {
  const renderButton = () => {
    switch (type) {
      case "add":
        return <AddButton>Add</AddButton>;
      case "delete":
        return <DeleteButton>Delete</DeleteButton>;
      case "back":
        return <BackButton>Back</BackButton>;
      default:
        return null;
    }
  };

  return renderButton();
};

๐ŸŽฏ ํ•ด๊ฒฐ ํฌ์ธํŠธ

  1. ๋ Œ๋”๋ง ๋กœ์ง์„ ๋ณ„๋„ ํ•จ์ˆ˜๋กœ ๋ถ„๋ฆฌ
  2. return๋ฌธ์€ ๊ฐ„๋‹จํ•˜๊ฒŒ ์œ ์ง€
  3. ์กฐ๊ฑด๋ถ€ ๋ Œ๋”๋ง ๋กœ์ง์„ ์ปดํฌ๋„ŒํŠธ ๋‚ด๋ถ€์—์„œ ๊ด€๋ฆฌ

๐Ÿ’ก ๊ฐœ์„ ๋œ ์ 

1. ๊ฐ€๋…์„ฑ ํ–ฅ์ƒ

  • ๋ Œ๋”๋ง ๋กœ์ง์ด ๋ช…ํ™•ํ•˜๊ฒŒ ๋ถ„๋ฆฌ๋จ
  • ์ปดํฌ๋„ŒํŠธ์˜ ๊ตฌ์กฐ๊ฐ€ ๋” ์ง๊ด€์ 

2. ์œ ์ง€๋ณด์ˆ˜์„ฑ ๊ฐœ์„ 

  • ๋ฒ„ํŠผ ํƒ€์ž… ์ถ”๊ฐ€/์ˆ˜์ •์ด ์šฉ์ด
  • ๋ Œ๋”๋ง ๋กœ์ง ์ˆ˜์ •์ด ํ•œ ๊ณณ์—์„œ ๊ฐ€๋Šฅ

3. ์„ฑ๋Šฅ ์ตœ์ ํ™”

  • React์˜ ๋ Œ๋”๋ง ์ตœ์ ํ™”์— ๋„์›€
  • ๋ถˆํ•„์š”ํ•œ ์—ฐ์‚ฐ ๋ฐฉ์ง€

๐Ÿš€ ๋ฆฌํŒฉํ† ๋ง ํ›„ ์ „์ฒด ์ฝ”๋“œ

import styled from "styled-components";
import PropTypes from 'prop-types';

const AddButton = styled.button`
  width: 100%;
  padding: 8px;
  margin-top: 12px;
  // ... ์Šคํƒ€์ผ ์†์„ฑ
`;

const Button = ({ type }) => {
  const renderButton = () => {
    switch (type) {
      case "add":
        return <AddButton>Add</AddButton>;
      // ... ๋‹ค๋ฅธ ์ผ€์ด์Šค๋“ค
      default:
        return null;
    }
  };

  return renderButton();
}

Button.propTypes = {
  type: PropTypes.string
}

export default Button;

๐Ÿ“ ๋ฐฐ์šด ์ 

  1. React ์ปดํฌ๋„ŒํŠธ์˜ return๋ฌธ์€ ์ตœ๋Œ€ํ•œ ๋‹จ์ˆœํ•˜๊ฒŒ ์œ ์ง€
  2. ๋ณต์žกํ•œ ์กฐ๊ฑด๋ถ€ ๋ Œ๋”๋ง์€ ๋ณ„๋„ ํ•จ์ˆ˜๋กœ ๋ถ„๋ฆฌ
  3. ์ปดํฌ๋„ŒํŠธ ์„ค๊ณ„ ์‹œ ๊ฐ€๋…์„ฑ๊ณผ ์œ ์ง€๋ณด์ˆ˜์„ฑ ๊ณ ๋ ค
profile
์ฃผ๋‹ˆ์–ด ํ”„๋ก ํŠธ์—”๋“œ ์„ฑ์žฅ๊ธฐ ๊ธฐ๋ก๊ธฐ๋ก

0๊ฐœ์˜ ๋Œ“๊ธ€