-
Notifications
You must be signed in to change notification settings - Fork 48
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
충남대 FE_박건민 3주차 과제 #120
base: geonbur
Are you sure you want to change the base?
충남대 FE_박건민 3주차 과제 #120
Conversation
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.
리뷰 피드백 드려요!
params: filterOption, | ||
}); | ||
return data.products; | ||
}; |
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.
지금처럼 프로젝트가 작은 단위일 때는 API 호출 코드는 컴포넌트에 선언해도 괜찮긴한데, 조금만 커져도 하나의 API를 여러 컴포넌트에서 소비할 수 있기에 보통은 컴포넌트 안에서 API 호출 코드를 정의하기 보다는 분리해서 관리하는걸 권장하긴 합니다.
const fetchThemesData = async () => { | ||
const response = await apiClient.get<{ themes: ThemeData[] }>('/themes'); | ||
return response.data.themes; | ||
}; |
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.
GET /themes
API 호출 코드는 아래 2가지를 포함해서 총 3곳에서 중복해서 적용되고 있네요. API 호출 코드는 컴포넌트에서 따로 추출해서 활용한다면 코드 중복을 제거하고 같은 API 호출 코드에서 일관된 타입을 적용할 수 있겠습니다. 해당 API 호출 뿐만 아니라 다른 API 코드도 포함해서 개선해보면 좋을 거 같아요.
src/pages/Theme/index.tsx
Outdated
isLoading: isThemeLoading, | ||
isError: isThemeError, | ||
error, | ||
} = useQuery(['theme', themeKey], () => fetchThemeDetails(themeKey), { |
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.
} = useQuery(['theme', themeKey], () => fetchThemeDetails(themeKey), { | |
} = useQuery<ThemeData | undefined, AxiosError>(['theme', themeKey], () => fetchThemeDetails(themeKey), { |
useQuery에 직접 타입 제공해주면 34번 라인의 as AxiosError
제거할 수 있을 거 같네요. as
를 통한 type assertion은 코드를 개선해야하는 신호로 받아들이시는게 좋습니다. TypeScript 컴파일러에 잘못된 정보를 전달할 수 있으니 꼭 필요한 상황이 아니라면 쓰지 않는게 좋아요.
과제 제출합니다.