[상훈] 포토카드 필터링 로직 #10
Replies: 4 comments
-
교수님 진도가 너무 빨라요
props의 개수나 성질을 봤을 때 저도 상태관리 라이브러리를 사용해서 관리하면 더 좋았을 것 같다는 생각이 들어요! 또 훅의 반환값을 hook이라는 이름으로 props로 주고받는 모습도 저는 왠지 모르게 어색하게 느껴지네요. |
Beta Was this translation helpful? Give feedback.
-
|
빠라바바밤 리뷰어 송재한입니다 😊 교수님 논문이기에 고친다기 보단 저의 궁금한 점을 몇 개 적어보겠습니다! props
map 내부의 key {photos?.pages.map((page, i) => (
<Fragment key={i}>
{page.photos.map(p => (
<PhotocardItem {...p} key={p.photocardId} icon={icon} handleClick={() => handleSelect(p.photocardId)} />
))}
</Fragment>
))}
&& 렌더링{children && <footer className="footer">{children}</footer>}
무엇보다 |
Beta Was this translation helpful? Give feedback.
-
찢었다...역시 교수님 Discussions 를 찢어놓으셨군요? 저도 리뷰보다는 한 수 배워가는 느낌으로 궁금한 점을 코멘트 달겠습니다.
교수님께 오늘도 한 수 배워갑니다...... |
Beta Was this translation helpful? Give feedback.
-
|
저도 상훈님이 질문하신거에 제가 답을 드릴수 있는건 없는것같고 😭 제가 구현했을때
저도 도움받았던 링크 남기고 갑니당 https://oliveyoung.tech/blog/2023-10-04/useInfiniteQuery-scroll/ |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
기능 설명
리액트를 공부하면서 처음으로 완성했던 프로젝트의 코드를 가져왔어요. 😊 개선 포인트가 많이 보이네요
우선 기능을 설명 드리자면, 서비스 내에 존재하는 포토카드 목록을 조회하는 기능이에요.
그룹과 멤버 드롭 다운을 클릭하여 필터링하거나 인풋에 이름을 입력하여 원하는 정보만 구할 수 있고, 무한 스크롤로 한 페이지 당 20개의 포토카드를 조회해요.
usePhotosQuery.ts
useInfiniteQuery를 래핑한 훅이에요. 필터링 관련 정보를 API에 담아서 보내줘요.useSearcher.ts
PhotoListWithFilter.tsx
PhotocardList.tsx
PhotocardItem.tsx
아쉬운 점
굉장히 오랜만에 꺼내 본 코드인데, 개선 포인트가 많이 보이는 것 같아요 😅
useInfiniteQuery의 옵션을 외부에서 주입할 수 있도록 옵셔널 인자를 열어 놓고 사용하고 있는데, 이 과정에서 작성하는 타입 관련 보일러 플레이트 코드가 신경 쓰여요.useSearcher훅에서 리액트 상태로 관리하고 있는데, 이 때문에 컴포넌트 간의 상태 공유를 위해 props drilling이 많이 발생하고 있어요. 상태를 반드시 리액트 내부에서 처리해야 했을지가 의문이 들어요.URLSearchParams를 활용할 것 같아요.Beta Was this translation helpful? Give feedback.
All reactions