map, filter 사용시 주의점!

0

부트캠프 프로젝트

목록 보기
11/24

<오늘 이슈 코드>

 const handleCompleted = (id) => {
    let newTodo = todos.map((todo) => {
      if (todo.id === id) {
        todo.isDone = !todo.isDone;
      }
      return todos; // todos는 [{}, ]형태로 state선언되어 있다!!  
    });
    setTodos(newTodo);
  };

<해결>

map, filter 메서드 사용시 if 조건문 사용시, return 값을 주되
return값을 똑바로 줄것!

 const handleCompleted = (id) => {
    let newTodo = todos.map((todo) => {
      if (todo.id === id) {
        todo.isDone = !todo.isDone;
      }
      return todo; 
      
 // if조건문 충족시 조건문 내용 로직대로 진행되고, todos에 속한 {}요소, 
 즉, 모든 각각의 todo가 리턴되어 새로운 배열을 구성하는 것이 map 메서드의 내용이다.
 
    });
    setTodos(newTodo);
  };
profile
안녕하세요😄 비전공자의 웹개발자 도전기를 쓰는 중입니다! 수정/보완할 부분이 있다면 피드백 언제든 환영입니다!

0개의 댓글