TanStackT
TanStack7d ago
5 replies
rubber-blue

automatic invalidation not working

export function getContext() {
    const queryClient = new QueryClient({
        defaultOptions: {
            dehydrate: { serializeData: superjson.serialize },
            hydrate: { deserializeData: superjson.deserialize },
        },
        queryCache: new QueryCache({
            onError: (error, query) => {
                toast.error(`Error: ${error.message}`, {
                    action: {
                        label: "retry",
                        onClick: query.invalidate,
                    },
                })
            },
        }),
        mutationCache: new MutationCache({
            onSettled: async (_data, _error, _vars, _context, mutation) => {
                console.log(_data, _error, _vars, _context, mutation)
                const meta = mutation.meta as {
                    invalidateQueryKey?: unknown[]
                }

                console.log(
                    "Invalidating query key in onSettled:",
                    meta.invalidateQueryKey,
                )

                if (meta.invalidateQueryKey) {
                    await queryClient.invalidateQueries({
                        queryKey: meta.invalidateQueryKey,
                    })
                }
            },
            onSuccess: (data, vars, res, mutation) => {
                const meta = mutation.meta as {
                    invalidateQueryKey?: unknown[]
                }

                console.log(
                    "Invalidating query key in onSuccess:",
                    meta.invalidateQueryKey,
                )
            },
            onError: console.log,
        }),
    })

    const serverHelpers = createTRPCOptionsProxy({
        client: trpcClient,
        queryClient: queryClient,
    })
    return {
        queryClient,
        trpc: serverHelpers,
    }
}


I've set this up in my tanstack start app which uses trpc and query.

from one of the components, im trying to invalidate it upon mutation:
Was this page helpful?