• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    해결됨

계속해서 ADD_POST_FAILURE가 발생합니다.

19.09.30 22:33 작성 조회수 207

0

위와 같이 서버에서도 문제없이 응답받고 있고, DB에서 잘 저장이 됩니다. 

다만 리덕스상에서 계속해서 실패를 합니다. 

아래 사가 파일 코드 상에서 실패시 받는 에러도 뭔지 알수가 없습니다. console.error(e)로 접근하려해도 undefined 뜨고요.

DB에는 정상적으로 들어갔으니 새로고침해야 제대로 업데이트되는 상황입니다. 

  • post.js/sagas
  • post.js/reducers
  • post.js/routes
  • user.js/reducers

    위 파일들에서 포스트 추가 관련된 코드 다 동일한데...뭘 더 확인해야할지 어떻게 해야할지 모르겠습니다. 계속 삽질하고 있을 순 없고 우선 진도는 빼야할 것 같아서 이렇게 질문드립니다.
function* addPost(action) {
  try {
    const result = yield call(addPostAPI, action.data);
    yield put({
      //post 리듀서 데이터 수정
      type: ADD_POST_SUCCESS,
      data: result.data
    });
    yield put({
      //user 리듀서의 데이터 수정
      type: ADD_POST_TO_ME,
      data: result.data.id
    });
  } catch (e) {
    yield put({
      type: ADD_POST_FAILURE,
      error: e
    });
  }
}

답변 5

·

답변을 작성해보세요.

0

Jiyeol Lee님의 프로필

Jiyeol Lee

질문자

2019.10.01

//게시글 추가
function addPostAPI(postData) {
  return axios.post("/post", postData, {
    withCredentials: true
  });
}

이제서야 발견했네요. 여기서 return을 해주지 않으니 addPost 함수에서 처리할 데이터가 없었던거 였습니다.

아까 다시해보니 console.error(e) 로 에러는 뜨더라고요. result.data에서 data 프로퍼티 못 읽겠다는 에러였는데. 해결하고 보니 이 에러도 이해가 되네요. 

다행히 더 귀찮게 해드릴 일은 없겠네요 ㅎㅎ 도와주셔서 감사합니다. 

콘솔 로그 에러는 서버를 껐다 키고 다시해보던지 계속 해봐야겠네요. 분명히 처음에 undefined로 나왔던 경우도 있었는데 말이죠.

0

Jiyeol Lee님의 프로필

Jiyeol Lee

질문자

2019.10.01

 ADD_POST_SUCCESS와 ADD_POST_FAILURE가 동시에 뜨는 것은 아니고 FAILURE만 뜨네요...

그런데 역시 제로초님 ch6 프론트 코드로는 잘 됩니다. 최대한 비교한 번 해볼게요. 그런데 보내게 되면 어디로 보내야 할까요?

0

console 탭에 console.error(e) 한 것 외의 다른 에러메시지도 없단 말씀이시죠? 보통 ADD_POST_SUCCESS와 ADD_POST_FAILURE가 동시에 뜨는 경우는 컴포넌트쪽에서 에러가 있을 때도 발생합니다. 일단 제 깃헙 코드와 비교해보시고 안 되면 프로젝트 파일 보내주세요.

0

Jiyeol Lee님의 프로필

Jiyeol Lee

질문자

2019.10.01

console.error(e) 해도 undefined라서요... 제로초님 코드 깃허브 코드 받아서 수정하지 않고 그대로 실행해보고 어떻게 비교를 해봐야할 것 같아요. 막막합니다... 저 4개 파일말고도 다른 파일에서 문제가 있을수도 있는건지도 모르겠네요..

0

console 탭에서 에러메시지가 안 뜨나요? catch 부분에서 yield put 위에 console.error(e); 추가해보세요.