inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지

12.17) 웹 스토리지 이용하기

Edit page onUpdate 질문

해결된 질문

141

ju004100

작성한 질문수 7

0

image.png

onUpadate를 주석처리하면 home으로 잘 돌아오는데, onUpadate를 실행하면 위 사진 같은 상태가 됩니다.

매번 오탈자로 질문드려서 죄송하지만 코드를 계속 살펴보고 다시 작성해봐도 같아서 질문드립니다...

 

import Header from "../components/Header";
import Button from "../components/Button";
import Editor from "../components/Editor";
import { useParams, useNavigate } from "react-router-dom";
import { useContext } from "react";
import { DiaryDispatchContext } from "../App";
import useDiary from "../hooks/useDiary";

const Edit = () => {
  const params = useParams();
  const nav = useNavigate();
  const { onDelete, onUpdate } = useContext(DiaryDispatchContext);
  const curDiaryItem = useDiary(params.id);

  const onClickDelete = () => {
    if (window.confirm("일기를 정말 삭제할까요? 다시 복구되지 않아요!")) {
      //일기 삭제 로직
      //console.log(params.id);
      onDelete(params.id);
      nav("/", { replace: true });
    }
  };

  const onSubmit = (input) => {
    if (window.confirm("일기를 정말 수정할까요?")) {
      onUpdate(
        params.id,
        input.createdDate.getTime(),
        input.emotionId,
        input.content
      );
    }
    nav("/", { replace: true });
  };

  return (
    <div>
      <Header
        title={"일기 수정하기"}
        leftChild={<Button onClick={() => nav(-1)} text={"< 뒤로 가기"} />}
        rightChild={
          <Button onClick={onClickDelete} text={"삭제하기"} type={"NEGATIVE"} />
        }
      />
      <Editor initData={curDiaryItem} onSubmit={onSubmit} />
    </div>
  );
};

export default Edit;

 

javascript react node.js

답변 2

0

이정환 Winterlood

App 컴포넌트의 reducer 함수의 UPDATE 부분에 오타가 있습니다. 아래 첨부해드린 map 메서드를 자세히 살펴보시면 화살표 함수의 화살표 뒤가 중괄호로 묶여 아무런 값도 리턴하지 않고 있는걸 볼 수 있습니다.

image.png

 

0

ju004100

네 감사합니다

다름이 아니라 해당 부분을 수정했음에도 수정이 안되는 것 같습니다. 페이지 랜더링은 잘 되지만 아래 이미지의 오류가 발생하여 질문하게 되었습니다.

image.png

 

0

이정환 Winterlood

안녕하세요 ju004100님!

이번 오류 해결은 제가 정답을 바로 알려드릴수도 있지만(매우 쉬운 정답이에요) 그것보단 ju004100님이 직접 해보실 수 있도록 안내해드리는게 더 괜찮을 것 같아요 실제로 우리가 개발을 진행하다보면 매일 새로운 에러에 부딪히게 되거든요 그럴 때 가장 도움이 되는건 에러메세지를 직접 해석하고 원인을 찾아 문제를 해결하는 능력이에요

캡쳐해서 올려주신 에러메세지를 한번 자세히 읽어보시면 어떨까요? 복사해서 파파고에 붙여넣어 번역한 상태로 보셔도 좋아요! 아마 장담컨데 5분내로 정답을 찾으실 수 있을거에요 그리고 찾으신 정답은 생각보다 너무 간단한거라 당황하실수도 있습니다 ㅋㅋ 그럼에도 혹시 정답을 못 찾으실 수 있으니 아주 아래에 정답도 함께 남겨드릴게요


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


열심히 찾아보셨는데도 정답을 모르시겠다면 아래를 참고해주세요

정답은 에러 메세지의 첫 문장에 나와 있어요 바로 에러 메세지를 보시면 <seciotn> 이라는 태그는 없다! 문구가 나와 있는데 seciotn이 아니라 section으로 작성해주셔야 해요 이번에도 역시 원인은 오타였네요

 

1

ju004100

reducer에서도

String(item.id) === String(action.data.id)로 작성해야하는데

String(item.id) === String(action.id)로만 해뒀더라구요 (이러면 비교 자체가 안되는거였는데...말이죠...)

두 가지의 오타가 있었는지 몰랐는데 생각보다 너무 간단한 실수였습니다...ㅎㅠㅎ

 

 

0

이정환 Winterlood

안녕하세요 이정환입니다.

문제를 정확히 식별하려면 전체 프로젝트 코드를 확인해봐야 할 것 같아요

이에 프로젝트 전체 코드를 GitHub에 업로드 하신 다음 링크로 공유해주시면 감사하겠습니다 😃

0

ju004100

https://github.com/1000ju/emotion_diary.git

깃허브 주소 입니다

 

useEffect와 lifecycle문의

0

26

2

프론트엔드 학습 수준 문의

0

38

2

리액트 챕터별 코드에서 eslint 설정파일이 없어요

0

48

2

데이터 로딩중 화면만 계속 나와요!!

0

55

2

퍼블리셔일경우 어느정도 수준까지 강의를 들어야할까요

0

79

2

이후의 커리큘럼 문의

0

102

2

실슬환경 설정에서 save후 console.log 부분이 새로고침이 안되는현상입니다.

0

50

2

최적화 관련 질문있습니다 (useMemo 등)

0

84

3

프로바이더 컴포넌트의 위치는 어떤 기준인가요?

1

82

3

Date 객체에 관련하여 질문드립니다.

0

85

2

리액트 개정판 교재 질문

0

60

2

예제코드가 안나와요!

0

78

2

select a variant 선택에서 javascript와 javascript+react compiler 중 무엇을 선택해야하나요? com

0

108

2

onMouseEnter 관련 문의 드립니다

0

92

3

배열의 렌더링 관련 질문 드립니다.

0

73

2

2:40초 refObj를 콘솔로 출력시 오류가 발생합니다.

0

113

2

TS, 리액트 강의중에 뭘 먼저 수강하는게 좋을까요?

0

136

2

useCallback 적용한 onCreate, onUpdate, onDelete 함수..

0

69

1

vs code 자동완성관련 문의

0

113

2

91강 useEffect내에서 상태변화함수 호출시 발생하는 에러

1

178

2

87강 필터 함수 질문

0

69

2

useRef, useState count 비교

0

67

2

안된다고했던 이유가 무엇이었는지 모르겠습니다

0

90

2

85강에서 객체를 왜 클래스로 만들어서 new 하지 않는건지 궁금합니다.

0

75

2