Disabling Queries
On this page
To disable queries, you can pass skipToken as the first argument to useQuery, useInfiniteQuery, and useSubscription. This will prevent the query from being executed.
Typesafe conditional queries using skipToken
import React, { function useState<S>(initialState: S | (() => S)): [S, React.Dispatch<React.SetStateAction<S>>] (+1 overload)useState } from 'react';
import { const skipToken: typeof skipTokenskipToken } from '@tanstack/react-query';
import { const trpc: CreateTRPCReactBase<BuiltRouter<{
ctx: object;
meta: object;
errorShape: DefaultErrorShape;
transformer: false;
}, DecorateCreateRouterOptions<{
getUserByName: QueryProcedure<{
input: {
name: string;
};
output: {
name: string;
email: string;
};
meta: object;
errorShape: DefaultErrorShape;
}>;
}>>, unknown> & DecorateRouterRecord<{
ctx: object;
meta: object;
errorShape: DefaultErrorShape;
transformer: false;
}, DecorateCreateRouterOptions<{
getUserByName: QueryProcedure<{
input: {
name: string;
};
output: {
name: string;
email: string;
};
meta: object;
errorShape: DefaultErrorShape;
}>;
}>>
trpc } from './utils/trpc';
export function function MyComponent(): React.JSX.ElementMyComponent() {
const [const name: string | undefinedname, const setName: React.Dispatch<React.SetStateAction<string | undefined>>setName] = useState<string | undefined>(): [string | undefined, React.Dispatch<React.SetStateAction<string | undefined>>] (+1 overload)useState<string | undefined>();
const const result: UseTRPCQueryResult<{
name: string;
email: string;
}, TRPCClientErrorLike<{
input: {
name: string;
};
output: {
name: string;
email: string;
};
transformer: false;
errorShape: DefaultErrorShape;
}>>
result = const trpc: CreateTRPCReactBase<BuiltRouter<{
ctx: object;
meta: object;
errorShape: DefaultErrorShape;
transformer: false;
}, DecorateCreateRouterOptions<{
getUserByName: QueryProcedure<{
input: {
name: string;
};
output: {
name: string;
email: string;
};
meta: object;
errorShape: DefaultErrorShape;
}>;
}>>, unknown> & DecorateRouterRecord<{
ctx: object;
meta: object;
errorShape: DefaultErrorShape;
transformer: false;
}, DecorateCreateRouterOptions<{
getUserByName: QueryProcedure<{
input: {
name: string;
};
output: {
name: string;
email: string;
};
meta: object;
errorShape: DefaultErrorShape;
}>;
}>>
trpc.getUserByName: DecoratedQuery<{
input: {
name: string;
};
output: {
name: string;
email: string;
};
transformer: false;
errorShape: DefaultErrorShape;
}>
getUserByName.useQuery: ProcedureUseQuery
<{
name: string;
email: string;
}, {
name: string;
email: string;
}>(input: typeof skipToken | {
name: string;
}, opts?: UseTRPCQueryOptions<{
name: string;
email: string;
}, {
name: string;
email: string;
}, TRPCClientErrorLike<{
input: {
name: string;
};
output: {
name: string;
email: string;
};
transformer: false;
errorShape: DefaultErrorShape;
}>, {
name: string;
email: string;
}> | undefined) => UseTRPCQueryResult<{
name: string;
email: string;
}, TRPCClientErrorLike<{
input: {
name: string;
};
output: {
name: string;
email: string;
};
transformer: false;
errorShape: DefaultErrorShape;
}>> (+1 overload)
useQuery(const name: string | undefinedname ? { name: stringname: const name: stringname } : const skipToken: typeof skipTokenskipToken);
return (
<React.JSX.IntrinsicElements.div: React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>div>{const result: UseTRPCQueryResult<{
name: string;
email: string;
}, TRPCClientErrorLike<{
input: {
name: string;
};
output: {
name: string;
email: string;
};
transformer: false;
errorShape: DefaultErrorShape;
}>>
result.data: {
name: string;
email: string;
} | undefined
data?.name: string | undefinedname}</React.JSX.IntrinsicElements.div: React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>div>
);
}