inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

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

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

107

김성빈

작성한 질문수 1

0

image.png

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

image.png

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

image.png

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

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

 

react typescript react-query

답변 2

0

이정환 Winterlood

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

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

image.png

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

0

인프런 AI 인턴

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

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

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

해결 방법:

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

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

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

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

회원가입 구현 (구현 후 최종 화면 출력 X)

0

41

2

(6.11) 회원가입시 프로필 정보 자동 생성하기 Q. 호출 순서 문의

0

37

1

명시적 타입 선언(콜론 타입 선언)과 as 타입 단언 차이

0

37

2

useMutation 적용 후 새로운 글 등록시 content가 안보여요

0

49

2

6.8 zustand 세션 질문입니다.

0

92

2

next.js 강의에서도 리액트 라이브러리들을 다뤄주시나요?

0

80

2

shadcn에서 radix ui와 base ui 차이는 뭔가요?

1

324

2

updateTodo 함수 생성시 화살표 함수 사용 안하는 이유

0

75

2

4.11 바로 투두 삭제가 안됨 질문

0

86

3

매개변수 updatedTodo 관련 질문

0

66

3

인증 정보가 만료되었을 때 라우트 가드 처리가 궁금합니다!

0

79

2

supabase를 사용하지 않을 경우 세션 데이터의 변경을 감지하고 스토어에 보관하는 방법이 궁금합니다!

0

69

2

4.6 id를 string으로 변경시 오류

0

64

2

리액트 타입스크립트 관련 질문있습니다.

0

62

1

소셜 로그인 구현하기 관련하여 질문이 있습니다!

0

98

2

ui 파일 질문드립니다.

0

76

1

tanstack query devtools에서 질문있습니다!

0

66

2

댓글 삭제 시 isPending 질문

0

64

2

두번째 예외상황에 대해 질문있습니다!

0

65

1

리액트 쿼리 질문입니다

1

72

2

개발자도구에서 components 가 안보입니다.

0

94

3

state 관리에 대한 정리

0

79

3

[(2.4) Shadcn/ui를 소개합니다] 강의 Shadcn 세팅 관련 질문 있습니다.

0

177

3

like 테이블에서 왜 create_at이 필요한지 궁금합니다.

0

78

1