-
Notifications
You must be signed in to change notification settings - Fork 35
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[김주은] sprint12 #329
The head ref may contain hidden characters: "React-\uAE40\uC8FC\uC740-sprint12"
[김주은] sprint12 #329
Conversation
); | ||
} | ||
|
||
const queryClient = new QueryClient(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
queryClient
를 외부에 선언해도 되지만 좀 더 정확하게는 state
로 선언하시더라구요. 매 request마다 클라이언트 사이드에서 쿼리클라이언트가 확실히 초기화되어있기를 보장하기 위해서 입니다.
아래의 링크를 확인해보세요.
@@ -20,20 +16,28 @@ function Navbar() { | |||
const isActive = | |||
location.pathname === "/additem" || location.pathname === "/items"; | |||
|
|||
const accessToken = localStorage.getItem("accessToken"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
useEffect
내부에서 local storage
에 접근하는게 더 안전한 접근법 일 것 같습니다.
코드를 읽는 속도와 로컬 스토리지에서 가져오는 속도차이로 undefined가 있을수도 있지 않을까 생각이 들어요.
try { | ||
const query = new URLSearchParams(params as any).toString(); | ||
|
||
const response = await fetch(`${BASE_URL}/products?${query}`); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
acess token을 사용하시려면 axios가 더 편할수도 있는데 fetch를 사용하신 이유가 있을까요?
useEffect(() => { | ||
const accessToken = localStorage.getItem("accessToken"); | ||
if (accessToken) { | ||
navigate("/"); | ||
} | ||
}, [navigate]); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
acess token이 없을 경우 다른 페이지로 이동을 해야하는 경우. 이를 protected page라고 합니다.
HOC 패턴으로 해당 로직을 쉽게 풀 수 있습니다.
protected router + HOC pattern으로 해당 로직을 패턴화 시켜보세요 !
https://patterns-dev-kr.github.io/design-patterns/hoc-pattern/
잘 이해가 안가면 DM을 주시면 멘토링때 같이 살펴보시면 좋을 것 같습니다.
className={classNames("auth-input", { | ||
required: true, | ||
error: errors.email, | ||
valid: isSubmitted, | ||
})} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
classNames
활용 좋아요 !!
요구사항
기본
회원가입
로그인
메인
로컬 스토리지에 accessToken이 있는 경우 상단바 ‘로그인’ 버튼이 판다 이미지로 바뀝니다.
스프린트 미션 12
api 요청에 TanStack React Query를 활용해 주세요.
중고마켓
상품 상세
상품 등록
심화
주요 변경사항
멘토에게