Closed GrassHopper42 closed 1 year ago
this is my code using infiniteQueries
<script lang='ts'> const queryResult = useInfiniteQuery('posts', fetchPosts, { getNextPageParam: (lastPage) => { return lastPage.hasNext ? lastPage.nextCursor : undefined; }, retry: false }); </script> <Main> {#if $queryResult.isLoading} Loading... {:else if $queryResult.isError} <span>Error: {$queryResult.error.message}</span> {:else if $queryResult.status === 'success' && $queryResult?.data?.pages?.length > 0} <MasonryGrid class="masonry" gap={20}> <PostUploadButton /> {#each $queryResult.data.pages as postPage} {#each postPage.data as data} <PostCard {data} /> {/each} {/each} </MasonryGrid> <IntersectionObserver element={observerElement} let:observer on:intersect={(e) => { if ($queryResult.hasNextPage) { $queryResult.fetchNextPage(); } else { if (observer) { observer.disconnect(); } } }} > <div class="observer" bind:this={observerElement}> {#if $queryResult.hasNextPage} {''} {:else if $queryResult.isFetchingNextPage} Loading {:else} End {/if} </div> </IntersectionObserver> {:else} Nothing To See {/if} </Main>
when I log page and pageParams in console, pageParams return correctly but first page only add in page array.
sorry... just my typo issue...
this is my code using infiniteQueries
when I log page and pageParams in console, pageParams return correctly but first page only add in page array.