SvelteStack / svelte-query

Performant and powerful remote data synchronization for Svelte
https://sveltequery.vercel.app
MIT License
813 stars 31 forks source link

InfiniteQueries fetch only first page #98

Closed GrassHopper42 closed 1 year ago

GrassHopper42 commented 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.

GrassHopper42 commented 1 year ago

sorry... just my typo issue...