쿼리 훅의 결과를 React 훅 의존성 배열에 직접 넣지 못하도록 합니다
다음 쿼리 훅에서 반환되는 객체는 참조적으로 안정적이지 않습니다:
useQueryuseSuspenseQueryuseQueriesuseSuspenseQueriesuseInfiniteQueryuseSuspenseInfiniteQueryuseMutation
해당 훅에서 반환된 객체를 React 훅(예: useEffect, useMemo, useCallback)의 종속성 배열에 직접 넣어서는 안 됩니다.
대신 쿼리 훅의 반환 값을 구조 분해하고, 구조 분해한 값을 React 훅의 의존성 배열에 전달합니다.
규칙 세부 정보
이 규칙에 맞지 않는 잘못된 코드의 예:
/* eslint "@tanstack/query/no-unstable-deps": "warn" */
import { useCallback } from 'react'
import { useMutation } from '@tanstack/react-query'
function Component() {
const mutation = useMutation({ mutationFn: (value: string) => value })
const callback = useCallback(() => {
mutation.mutate('hello')
}, [mutation])
return null
}
이 규칙에 맞는 올바른 코드의 예:
/* eslint "@tanstack/query/no-unstable-deps": "warn" */
import { useCallback } from 'react'
import { useMutation } from '@tanstack/react-query'
function Component() {
const { mutate } = useMutation({ mutationFn: (value: string) => value })
const callback = useCallback(() => {
mutate('hello')
}, [mutate])
return null
}
속성
- ✅ 권장
- 🔧 수정 가능