Docs
Code Rabbit
Cloudflare
AG Grid
Netlify
Neon
WorkOS
Clerk
Convex
Electric
Sentry
Prisma
Strapi
Unkey
UI.dev
Code Rabbit
Cloudflare
AG Grid
Netlify
Neon
WorkOS
Clerk
Convex
Electric
Sentry
Prisma
Strapi
Unkey
UI.dev
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.