무한댓글 만들기

💻 container
- 댓글 데이터와
fetchMore
기능을 쓰기위해 선언해주기
const { data, fetchMore } = useQuery(FETCH_BOARD_COMMENTS, {
variables: {
boardId: router.query.number,
},
});
onLoadMore
함수 만들어주기
fetchMore
과 updateQuery
를 사용한다.
function onLoadMore() {
if (!data) return;
fetchMore({
variables: {
page: Math.ceil(data?.fetchBoardComments.length / 10) + 1,
},
updateQuery: (prev, { fetchMoreResult }) => {
return {
fetchBoardComments: [
...prev.fetchBoardComments,
...fetchMoreResult.fetchBoardComments,
],
};
},
});
}
💻 presenter
InfiniteScroll
을 import
해서 Docs
를 참고해 사용할 기능들을 넣어준다.
import InfiniteScroll from "react-infinite-scroller";
<InfiniteScroll pageStart={0} loadMore={props.onLoadMore} hasMore={true}>
{props.data?.fetchBoardComments.map((el) => (
<CommentsListUIItem key={el._id} el={el} />
))}
</InfiniteScroll>