54-55강 수정 내용 관련 질문
78
작성한 질문수 3

54강 강의 노트에서 수정 버전으로 작성 시 오히려 에러가 발생하여 질문드립니다! 수정 전에 오히려 문제가 없었는데, 수정 후 발생한 문제에 대해 어떻게 해결하면 좋을 지 답변주시면 정말 감사하겠습니다:)
<에러 메시지>
'context.previousPost'은(는) 'undefined'일 수 있습니다.ts(18048)
답변 3
0
에러가아니라 타입경고 아닌가요?? context?.previousPost?.id 로 해도 될것같습니다.
또는 id가 있을때로 조건을 추가해보시겠어요?
onError: (err, newPost, context) => {
if (context?.previousPost?.id) {
queryClient.setQueryData(
[queryKeys.POST, queryKeys.GET_POST, context.previousPost.id],
context?.previousPost
);
}
},
0
context?.previousPost?.id 로 진행하면 문제는 없으나, 강의 수정 자료에 올려준 그대로 해봤을 때 문제가 생겨서 질문 남겼습니다!
context?.previousPost?.id로 진행해서 계속 수강해보겠습니다.
0
또는 onMutate내부에서 previousPost없으면 리턴하는 방법도 있습니다. 이렇게하면 context?.previousPost.id 그대로 사용하실수있습니다!
const previousPost = queryClient.getQueryData<Post>([
queryKeys.POST,
queryKeys.GET_POST,
postId,
]);
if (!previousPost) return;
0
안녕하세요, 인프런 AI 인턴입니다. gownsrkt11님.
React Query를 사용하여 useLikePost 함수를 구현하신 것에 대한 문제로 보이는데요, 주어진 에러 메시지는 ‘context.previousPost’가 undefined일 수 있다는 경고를 전달하고 있습니다. 이는 주로 onError 콜백에서 이전의 상태를 롤백할 때 발생할 수 있는 문제입니다.
문제 원인
onError 함수는 매개변수 context를 사용하여 이전 상태를 복원합니다. context에 previousPost가 존재하지 않으면, 이는 undefined가 되어 문제가 발생합니다.
해결 방법
초기화된 Context:
onMutate콜백에서 반환되는context객체가 올바르게 설정되었는지를 확인해주세요.context객체는 주로onMutate가 실행될 때 갖고 있는 상태를 반환합니다.안전한 접근 방법 사용:
- 옵셔널 체이닝(
?.) 또는 논리 연산자(&&)를 사용하여context.previousPost를 안전하게 확인해 보세요.
- 옵셔널 체이닝(
예를 들어:
onError: (err, variables, context) => {
if (context?.previousPost) {
queryClient.setQueryData(
[queryKeys.POST, queryKeys.GET_POST, context.previousPost.id],
context.previousPost,
);
}
},
- 초기 Context 설정:
onMutate에서 context를 명확하게 초기화하는 것도 방법입니다.
추가 학습 자료
관련 질문과 답변 또는 강의 자료를 참조하여 React Query의 낙관적 업데이트와 오류 처리 방식에 대해 더 깊이 이해하는 데 도움이 될 수 있습니다.
다음과 같은 유사한 질문을 통해 보다 자세한 정보를 얻을 수 있습니다:
- React Query 낙관적 업데이트에서 발생할 수 있는 에러 처리 문제.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해 드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
secureTextEntry 설정에 관해
0
55
2
expo 55 tabs 사라짐 이슈
0
76
2
백엔드도 궁금합니다!
1
84
1
댓글 버튼 하단에 고정되지 않는 이슈
0
50
1
SafeAreaView 적용 기준 문의
0
80
2
스크린 옵션 아이콘
0
55
2
[Note] 안드로이드 네비게이션 헤더 이슈 안내
0
65
2
ActionSheet
0
84
1
안드로이드 폰과 PC에서 테스트할때 화면 안보임과 오류 문의
0
98
1
iOS 빌드 후 실기기에서 앱 시작
1
68
1
[5-2] 글 목록 무한스크롤 구현하기 with InfiniteQuery 10:40/ useScrollTop(ref) 사용관련
0
80
2
클라이언트 사이드에서 세션 관련 질문
0
80
2
Android 에뮬레이터 환경설정 및 실행 (for Mac) 에러 문의
0
111
1
[5-13] useLikePost 쿼리 구현 중 Tanstack Query 관련 질문
0
62
1
Expo 54 버전 ios에서 headerLeft
1
139
2
어플 개발 후 배포 시에 주의할 사항이 있을까요?
0
78
1
코드 수정 시 ios 시뮬레이터에서 자동반영이 안 되는데 왜그럴까요?
0
91
1
텍스트가 다 상단위로 올라가있는데 어떻게 해야할까요?
0
78
2
Axios Network error...
0
148
2
강의는 52버전인데 expo가 현재 54버전이에요
0
305
1
[TIP] SafeAreaView 사용할 때마다 자꾸 ios에서 위아래가 빵꾸 나시는 분들 필독
0
232
2
키보드 이슈 관련 해결 질문
0
71
1
android header를 ios처럼 바꾸기
0
65
1
CustomButton 코드 버튼 관련 질문
0
63
1





