클론코딩 #14 | To-Do List 만들기 (3) (Categories)

HyeonWooGa·2022년 7월 6일
0

클론코딩

목록 보기
15/20

Categories

  • 사용자들이 버튼을 이용해서 toDo 의 카테고리를 바꿀 수 있게 하는 기능을 추가 해보겠습니다.

버튼을 이용하는 방법 1

  • 인자 받는 함수를 직접 만들어서, 새 익명 함수를 선언하여 인자를 넘겨주는 것
// ToDo.tsx

import { IToDo } from "../atoms";

function ToDo({ text, category }: IToDo) {
  const onClick = (newCategory: IToDo["category"]) => {
    console.log("I wanna go to", newCategory);
  };
  return (
    <li>
      <span>{text}</span>
      {category !== "TO_DO" && (
        <button onClick={() => onClick("TO_DO")}>To Do</button>
      )}
      {category !== "DOING" && (
        <button onClick={() => onClick("DOING")}>Doing</button>
      )}
      {category !== "DONE" && (
        <button onClick={() => onClick("DONE")}>Done</button>
      )}
    </li>
  );
}

export default ToDo;

버튼을 이용하는 방법 2

  • 이벤트 인자를 넘겨 받는 함수로 만들고 buttonname 어트리뷰트 사용하여 넘겨주는 방법입니다.
// ToDo.tsx

import React from "react";
import { IToDo } from "../atoms";

function ToDo({ text, category, id }: IToDo) {
  const onClick = (event: React.MouseEvent<HTMLButtonElement>) => {
    const {
      currentTarget: { name },
    } = event;
    console.log("I wanna go to", name);
  };
  return (
    <li>
      <span>{text}</span>
      {category !== "TO_DO" && (
        <button name="TO_DO" onClick={onClick}>
          To Do
        </button>
      )}
      {category !== "DOING" && (
        <button name="DOING" onClick={onClick}>
          Doing
        </button>
      )}
      {category !== "DONE" && (
        <button name="DONE" onClick={onClick}>
          Done
        </button>
      )}
    </li>
  );
}

export default ToDo;
profile
Aim for the TOP, Developer

0개의 댓글