그리고 ArticlesScreen을 다음과 같이 수정하면 반대 방향으로도 페이지네이션할 수 있습니다.

    screens/ArticlesScreen.tsx

    (...)
    
    function ArticlesScreen() {
      const {
        data,
        isFetchingNextPage,
        fetchNextPage,
        fetchPreviousPage,
        isFetchingPreviousPage,
      } = useInfiniteQuery(
        'articles',
        ({pageParam}) => getArticles({...pageParam}),
        {
          getNextPageParam: (lastPage) =>
            lastPage.length === 10
              ? {cursor: lastPage[lastPage.length - 1].id}
              : undefined,
          getPreviousPageParam: (_, allPages) => {
            const validPage = allPages.find((page) => page.length > 0);
            if (!validPage) {
              return undefined;
            }
            return {
              prevCursor: validPage[0].id,
            };
          },
        },
      );
    
      const items = useMemo(() => {
        if (!data) {
          return null;
        }
        return ([] as Article[]).concat(...data.pages);
      }, [data]);
    
      const [user] = useUserState();
    
      if (!items) {
        return (
          <ActivityIndicator size="large" style={styles.spinner} color="black" />
        );
      }
    
      return (
        <Articles
          articles={items}
          showWriteButton={!!user}
          isFetchingNextPage={isFetchingNextPage}
          fetchNextPage={fetchNextPage}
          refresh={fetchPreviousPage}
          isRefreshing={isFetchingPreviousPage}
        />
      );
    }
    
    (...)
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.