❗ 발견한 버그는 총 3개입니다.

  1. 삭제 버튼 클릭 시 삭제되지 않음.
  2. 삭제 후 TodoItem 생성 시 key 중복 발생
  3. 페이지 TodoItem 로딩 후 TodoItem 생성 시 key 중복 발생

🎯 삭제 버튼 클릭 시 TodoItem 제거하기

// TodoItem.tsx
const TodoItem = ({ toggleTodo, removeTodo, todo }: TodoItemProps) => {
  const { id, text, done, startDate, deadline } = todo;

  const handleRemove = useCallback((id) => {
    removeTodo(id);
  }, []);

  return (
    <TodoItemBlock>
      <Remove onClick={() => handleRemove(id)}>
        <DeleteOutlined />
      </Remove>
    </TodoItemBlock>
  );
};
// useTodo.tsx
const removeTodo = (id: number) => {
    setTodoState((prevState) => prevState.filter((todo: Itodo) => todo.id !== id));
  };

🎯 삭제 후 Item 생성 시 key 중복 발생 버그

// TodoCreate.tsx
// 생성 버튼 클릭
const handleSubmit = (e: React.FormEvent<HTMLFormElement>) => {
    e.preventDefault();

    incrementNextId(); // nextId 하나 증가

		createTodo({
      id: nextId,
      text: value,
      done: false,
      startDate,
      deadline,
    }
  };
// useTodo
const [nextIdState, setNextIdState] = useState(0);

const incrementNextId = () => {
    setNextIdState(nextIdState + 1);
  };

const createTodo = (todo: Itodo) => {
    const nextId = nextIdState;
    setTodoState((prevState) =>
      prevState.concat({
        ...todo,
      }),
    );
  };

🎯 페이지 TodoItem 로딩 후 TodoItem 생성 시 key 중복 발생 버그