Error: No QueryClient set, use QueryClientProvider to set one
The error is coming from this snippet
Where I try to fetch products by page.
the products routers look as follows:
And Inside of my
So I have indeed set QueryClientProvider and passed the
const {
data,
isLoading,
error,
hasNextPage,
isFetchingNextPage,
fetchNextPage,
} = api.products.getAllByPage.useInfiniteQuery(
{
cursor: page,
},
{
getNextPageParam: (lastPage) => lastPage.nextPage,
getPreviousPageParam: (page) => page.prevPage,
}
); 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;
}),
});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_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>
);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
QueryClientQueryClient through.