Theo's Typesafe CultTTC
Theo's Typesafe Cult3y ago
28 replies
kenny

Error: No QueryClient set, use QueryClientProvider to set one

The error is coming from this snippet
 const {
    data,
    isLoading,
    error,
    hasNextPage,
    isFetchingNextPage,
    fetchNextPage,
  } = api.products.getAllByPage.useInfiniteQuery(
    {
      cursor: page,
    },
    {
      getNextPageParam: (lastPage) => lastPage.nextPage,
      getPreviousPageParam: (page) => page.prevPage,
    }
  );

Where I try to fetch products by page.
the products routers look as follows:
export const productsRouter = createTRPCRouter({
  getAll: publicProcedure.query(async () => {
    const { data } = await axios.get(`${baseUrl}/products/`);

    return data;
  }),

  getAllByPage: publicProcedure
    .input(z.object({ cursor: z.number().nullish() }))
    .query(async ({ input }) => {
      const { data } = await axios.get<{
        prevPage: number;
        currentPage: number;
        nextPage: number;
        totalPages: number;
        products: IProduct[];
      }>(`${baseUrl}/products/get-all-by-page/${input?.cursor ?? 1}`);

      if (!data) {
        throw new TRPCError({
          code: "NOT_FOUND",
          message: "Failed to fetch products!",
        });
      }

      return data;
    }),
});

And Inside of my _app.tsx component I am returning this:
return (
    <QueryClientProvider client={queryClientRef.current} contextSharing={true}>
      {/* @ts-ignore */}
      <Hydrate state={pageProps.dehydratedState}>
        <ManagedUIContext>
          <>
            <DefaultSeo />
            <Layout pageProps={pageProps}>
              <Component {...pageProps} key={router.route} />
            </Layout>
            <ToastContainer />
            <ManagedModal />
            <ManagedDrawer />
          </>
        </ManagedUIContext>
      </Hydrate>
      <ReactQueryDevtools initialIsOpen={false} />
    </QueryClientProvider>
  );

So I have indeed set QueryClientProvider and passed the QueryClient through.
Was this page helpful?