해결된 질문
작성
·
175
·
수정됨
1
강의를 보다가 해당 useEffect 의존성 배열 부분에 빈 배열을 넣어야 한다고 생각해서 넣었었는데 이러면 등록 버튼 눌렀을 때 에러가 뜹니다.
그러다가 어쩔 때는 등록이 되기도 하네요 왜 이럴까요? 혹시 오타나 제가 잘못 작성한 부분이 있는걸까요?
등록 눌러도 응답이 없길래 onError이용해서 찍어보니
위 사진과 같이 계속 400 에러가 뜨고 있었어요
그래서 의존성 부분에 빈배열 빼고 강의에서 작성해주신 것처럼 아무것도 안넣었더니 정상적으로 작동했습니다!
저와 비슷한 생각으로 의존성 관련 질문 주신분 있어서 답변 보니 빈배열 넣어야 한다고 하셨는데 전 왜 에러가 뜰까요? 스스로 해결해 보려다가 아직 부족한게 많아서 글 작성해봅니다!
코드도 같이 첨부합니당
답변 1
1
의존성배열을 없앨필요는 없고, 빈 배열이나 handleSubmit을 넣어주시면 될것같아요. 그런데 지금 발생하는 에러는 의존성배열과 관련된 문제가 아닐거예요. HyeJung님의 다른 코드에는 문제는 없어보이고 400번 에러가 발생하는데 잘못된 값을 넣었거나, 필수값이 누락된건 아닐까요? 예를들어 제목을 입력하지않아도 400 에러가 발생합니다!
좀더 정확한 에러메세지를 보려면, error.response.data.message
에 에러메세지가 담기기때문에 아래와 같이 찍어보면 되는데 한번 확인해보시겠어요?
createPost.mutate(
{address, ...location, ...body},
{
onSuccess: () => navigation.goBack(),
onError: error => console.log('에러메세지입니다:', error.response?.data.message),
},
);
handleSubmit 넣으니까 잘 됩니다! 그런데 제목이나 내용 입력할 때마다 useEffect가 계속해서 호출되는 것 같은데 이 부분은 신경 안쓰고 계속 진행해도 괜찮을까요?