Docs
CodeRabbit
Cloudflare
Railway
WorkOS
Netlify
SerpAPI
Clerk
OpenRouter
AG Grid
Sentry
Electric
Unkey
Prisma
CodeRabbit
Cloudflare
Railway
WorkOS
Netlify
SerpAPI
Clerk
OpenRouter
AG Grid
Sentry
Electric
Unkey
Prisma
ESLint

Prefer object syntax for useQuery

You can use useQuery in two different ways.

Standard

tsx
useQuery(queryKey, queryFn?, options?)

// or

useQuery(options)
useQuery(queryKey, queryFn?, options?)

// or

useQuery(options)

This rule prefers the second option, as it is more consistent with other React Query hooks, like useQueries. It will also be the only available option in a future major version.

Rule Details

Examples of incorrect code for this rule:

js
/* eslint "@tanstack/query/prefer-query-object-syntax": "error" */

import { useQuery } from '@tanstack/react-query';

useQuery(queryKey, queryFn, {
  onSuccess,
});

useQuery(queryKey, {
  queryFn,
  onSuccess,
});
/* eslint "@tanstack/query/prefer-query-object-syntax": "error" */

import { useQuery } from '@tanstack/react-query';

useQuery(queryKey, queryFn, {
  onSuccess,
});

useQuery(queryKey, {
  queryFn,
  onSuccess,
});

Examples of correct code for this rule:

js
import { useQuery } from '@tanstack/react-query';

useQuery({
  queryKey,
  queryFn,
  onSuccess,
});
import { useQuery } from '@tanstack/react-query';

useQuery({
  queryKey,
  queryFn,
  onSuccess,
});

When Not To Use It

If you don't care about useQuery consistency, then you will not need this rule.

Attributes

  • ✅ Recommended
  • 🔧 Fixable

Credits

This rule was initially developed by KubaJastrz in eslint-plugin-react-query.