본문으로 건너뛰기

무한 쿼리에서 추론에 민감한 속성의 올바른 순서를 보장합니다

다음 함수에서는 타입 추론으로 인해 전달된 객체의 속성 순서가 중요합니다:

  • useInfiniteQuery
  • useSuspenseInfiniteQuery
  • infiniteQueryOptions

올바른 속성 순서는 다음과 같습니다:

  • queryFn
  • getPreviousPageParam
  • getNextPageParam

다른 모든 속성은 타입 추론에 의존하지 않으므로 순서의 영향을 받지 않습니다.

규칙 세부 정보

이 규칙에 맞지 않는 잘못된 코드의 예:

/* 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,
})

이 규칙에 맞는 올바른 코드의 예:

/* 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,
})

속성

  • ✅ 권장
  • 🔧 수정 가능