Ensure correct order of inference sensitive properties for infinite queries
Source URL: https://tanstack.com/query/latest/docs/eslint/infinite-query-property-order
Ensure correct order of inference sensitive properties for infinite queries
Section titled “Ensure correct order of inference sensitive properties for infinite queries”For the following functions, the property order of the passed in object matters due to type inference:
useInfiniteQueryuseSuspenseInfiniteQueryinfiniteQueryOptions
The correct property order is as follows:
queryFngetPreviousPageParamgetNextPageParam
All other properties are insensitive to the order as they do not depend on type inference.
Rule Details
Section titled “Rule Details”Examples of incorrect code for this rule:
/* eslint "@tanstack/query/infinite-query-property-order": "warn" */import { useInfiniteQuery } from '@tanstack/react-query'
const query = useInfiniteQuery({ queryKey: ['projects'], getNextPageParam: (lastPage) => lastPage.nextId ?? undefined, queryFn: async ({ pageParam }) => { const response = await fetch(`/api/projects?cursor=${pageParam}`) return await response.json() }, initialPageParam: 0, getPreviousPageParam: (firstPage) => firstPage.previousId ?? undefined, maxPages: 3,})Examples of correct code for this rule:
/* eslint "@tanstack/query/infinite-query-property-order": "warn" */import { useInfiniteQuery } from '@tanstack/react-query'
const query = useInfiniteQuery({ queryKey: ['projects'], queryFn: async ({ pageParam }) => { const response = await fetch(`/api/projects?cursor=${pageParam}`) return await response.json() }, initialPageParam: 0, getPreviousPageParam: (firstPage) => firstPage.previousId ?? undefined, getNextPageParam: (lastPage) => lastPage.nextId ?? undefined, maxPages: 3,})Attributes
Section titled “Attributes”- ✅ Recommended
- 🔧 Fixable