250x250
Notice
Recent Posts
Recent Comments
Link
«   2025/08   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Archives
Today
Total
관리 메뉴

y.developer

[TIL] Day 24 TodoList 만들며 발생한 모든 오류들 본문

카테고리 없음

[TIL] Day 24 TodoList 만들며 발생한 모든 오류들

y.developer 2023. 11. 7. 23:02
728x90

2023.11.07 화

 

리빌딩한 파일을 토대로 추가 작성 필요

ver1 ~ ver4 타임어택과 리팩터링을 진행하면서 수많은 오류들을 만났다.

이를 기록하고 어느 부분에서 모르는지 체크해볼 수 있었다.

 

TodoList를 리빌링 해보면서 온갖 오류들을 다 만났다.

처음에 작성했을 때와는 또 다른 부분에서 막혔던 것도 있고, 동일한 부분에서 또 막힌 부분도 있었다.

다음에 같은 오류를 만났을 때 대처하기 위해서 정리해보려고 한다.

 

컴포넌트 jsx 파일 이름 변경시 오류

newTodo []

import react-uuid / uuid 차이

 

 

 

▶컴포넌트 앞에 대문자 안붙여서 변경시 오류

 

자주 발생하는 상황 : 컴포넌트 jsx파일을 생성할 때 파일이름의 첫글자를 소문자에서 대문자로 바꿔야하는 경우. 즉, 파일 이름을 변경해야하는 경우. yarn start로 서버도 켜져있는 경우

오류 상황 : 파일이름과 컴포넌트 import도 변경 했는데 오류가 발생

해결 방법
1. 보통의 경우 import 선언한 파일에서 저장을 진행하지 않아서
2. import 경로가 잘 못 돼서
3. jsx가 사용되는 <Input/> 부분에서 다른 단어가 사용되었을 경우

// jsx파일 이름 변경 후 import 선언한 파일 저장 진행

 

 

// 경로에서 파일명이 없을 때 index를 default로 찾아간다
import './App.css';
import React, { useState } from 'react';
import uuid from "react-uuid"

 

 



// 오류 : {}를 감싸는 [] 오타
    const newTodo = {
        id: uuid(),
        title: title,
        contents: contents,
        isDone: false,
      };

    setTodo([...todo, newTodo]);

 

 

 

{/* 기본적으로 form태그 안의 button은 submit으로 설정. 그러나 type을 명확하게 명시해주는 것이 협업에 좋다.
          type="button"으로 설정한다면 엔터 작성 시 작동을 막을 수 있다. */}
        <button onClick={addClickHandler}>추가하기</button>

 

 

 

  // isDone 값 변경 안됨 => if문 안에 매개변수에 다른 값이 들어갔었다.
  const doneHandler = (todo) => {
    const doneTodo = todos.map(item => {
      // todo값은 위에 map에서 내려온 매개변수
      if (item.id === todo.id) {
        return {
          ...item,
          isDone: !item.isDone,
        }
      } else {
        return item;
      }
    })
    setTodos(doneTodo)
  }


// useState 값이 배열이기에 todos로 명명해주는 것이 오해의 소지를 줄일 수 있다
  const [todo, setTodo] = useState([]);

 

 

 

 

 

pro tips

 

CSS 모든요소에 적용
* {
}

props 대신 prev
이전 값을 가져올 수 있다


git copilot

 

 

onkeyup={handleKeyUp}

const handleKeyUp = (e) => {

  if (e.key === "Enter") handleClick();

};

 

onkeydown

onkeyup

onkeyPress

728x90