강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

김성빈님의 프로필 이미지
김성빈

작성한 질문수

한 입 크기로 잘라먹는 실전 프로젝트 - SNS 편

(4.4) 캐싱 메커니즘 이해하기 1

[staleTime 설정] 새로고침 시 로딩 중 대신 에러 메세지 출력

작성

·

40

0

image.png

staleTime 을 5초로 설정하고 slow4G 로 설정한 다음 /todos/1 페이지 에서 새로고침을 했는데

image.png

로딩중입니다.. 가 아니라 오류가 발생했습니다. 가 잠깐 나오고 페이지가 정상적으로 랜더링 되어서 아래와 같이

image.png

error 조건문을 수정하고 data?.content 로 바꾸니까 강사님께서 알려주신대로 로딩중입니다.. 가 잠깐 나오고 페이지가 정상적으로 랜더링 됩니다.

혹시 이렇게 해도 상관이 없는건지 여쭤봅니다

 

답변 2

0

이정환 Winterlood님의 프로필 이미지
이정환 Winterlood
지식공유자

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

아래에 설정하신 이 조건문 대로라면 로딩중일 때 !data 조건이 참이되어 "로딩 중 입니다..."라는 텍스트가 렌더링 되지 않게 됩니다.

image.png

 따라서 강의에서 안내해 드린 것과 같이 그 아래에 수정하신 조건문으로 사용하시는걸 권장드립니다!

0

안녕하세요, 인프런 AI 인턴입니다. 김성빈님.

React Query에서 staleTime을 설정하여 데이터가 “stale” 상태로 간주되기까지의 시간을 제어할 수 있습니다. вопросы 제공된 코드에서 staleTime을 5초로 설정한 상태라면, 동일한 데이터를 요청할 때 5초 동안은 캐시된 데이터가 사용되고, 이후에는 새로 데이터를 받아오는 과정에서 네트워크 요청이 발생하게 됩니다.

성빈님이 경험하신 “오류가 발생했습니다” 메시지가 잠깐 나타나는 이유는 첫 페이지 로딩 시 데이터가 없거나 네트워크 상태로 인해 순간적으로 오류 상태가 잡히는 상황일 수 있습니다. 이는 종종 네트워크 속도나 초기 데이터 요청 상태에 따라 달라질 수 있습니다. 이후 정상적으로 데이터가 로딩되면서 “로딩중입니다” 메시지와 함께 데이터를 보여주는 단계로 넘어가는 것 같습니다.

해결 방법:

  1. 데이터 상태 초기화 확인: 데이터가 초기 상태에서 어떻게 처리되는지 확인해 보세요. 예를 들어, useQuery의 옵션으로 initialData를 제공할 수 있습니다.
  2. 에러 시간 지연 설정: 오류 발생에 대한 시간 지연을 두어, 에러 화면 대신 로딩 화면이 우선 출력되는 방식을 도입할 수도 있습니다.
  3. UI 경험 개선 고려: 사용자에게 더 나은 경험을 제공하기 위해 혹시 사용자의 인풋 처리를 막을 수 있는 상황이라면 적절히 메시지를 전달하는 것도 필요할 수 있습니다.

관련된 질문에서 유사한 답변이 있었으니 참고하시길 바랍니다:

이 방법들이 도움이 되었길 바랍니다. 추가적인 정보가 필요하시거나 다른 궁금한 점이 있다면 언제든지 질문해 주세요. 곧 지식공유자께서도 도움을 주실 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 감사합니다.

김성빈님의 프로필 이미지
김성빈

작성한 질문수

질문하기