Infinite Scroll Error
첫 화면 렌더링시
메인 페이지 - 이미지가 일부 깨져보이는 현상 발생
프로필 페이지 - 일부 스켈레톤 UI가 새로고침 전까지 잔류하는 현상 발생
### Temporary Solution
navigate로 설정된 url이동(페이지 리로딩 x)을
window.location.href를 활용하여 페이지 리로딩하여 오류 수정
window.location.href = '/main';
### Advanced Solution
react-query useInfiniteQuery와 observer pattern을 활용하여 infinite scroll 구현
useInfiniteQuery에 내장된 isLoading → isFetching으로 코드 변경하여 오류 수정
const { data, isSuccess, fetchNextPage, hasNextPage, isFetching, isError } = useInfiniteQuery(
'mainPosts',
({ pageParam = 1 }) => getPosts(pageParam),
{
getNextPageParam: (posts) => {
return posts.last ? undefined : posts.pageable.pageNumber + 2;
},
}
);
<MainHeader>
{isFetching &&
Array(3)
.fill()
.map((_, index) => <PostSkeleton key={index} />)}
{data && allPosts.map((post) => <MainPost key={post.postId} post={post} />)}
<div ref={observerElem}></div>
</MainHeader>
'Programming' 카테고리의 다른 글
[TIL] var, let, const / promiss, async&await 차이 (0) | 2023.08.06 |
---|---|
[TIL] 프론트에서 상태관리, Recoil을 사용하는 이유 (0) | 2023.08.02 |
[TIL] useMutation(react-query) (0) | 2023.07.31 |
[TIL] Front-end img size handling (0) | 2023.07.28 |
[github] 협업을 위한 branch 생성시 git pull & pull request (0) | 2023.07.23 |