TanStackT
TanStack2y ago
23 replies
developed-pink

React Query + Router

When using TanStack Query together with TanStack Router, I am not able to show fresh data even though my context is a query client, and I am invalidating the query client on mutation. Any clue?

My __root.tsx:

interface MyRouterContext { queryClient: QueryClient; } export const Route = rootRouteWithContext<MyRouterContext>()({ component: App, });

My main.tsx

const queryClient = new QueryClient({ defaultOptions: { queries: { refetchOnWindowFocus: false } }, }); const router = createRouter({ routeTree, defaultPreload: "intent", context: { queryClient }, });

And my Test.tsx

export const Route = createFileRoute("/Test")({ component: Test, loader: ({ context: { queryClient } }) => queryClient.ensureQueryData(myQuery), pendingComponent: Spinner, errorComponent: Error, });

myQuery:

export const myQuery = { queryKey: ["test"], queryFn: () => getSomething(), };

And I have this functionality on a onClick button:

const { queryClient } = Route.useRouteContext(); <button onClick={() => queryClient.invalidateQueries(["test"])}>Click me</button>
Was this page helpful?