Docs
ESLINT
Exhaustive Deps

Exhaustive Dependencies for Query Keys

쿼리 키는 쿼리 함수의 종속성 배열로 간주되어야 합니다. 쿼리 함수 내에서 사용되는 모든 변수는 쿼리 키에 추가해야 합니다. 이는 쿼리가 독립적으로 캐시되고 변수 변경 시 쿼리가 자동으로 다시 가져와지도록 보장합니다.

Rule Details

이 규칙에 대한 잘못된 코드 예제:

/* eslint "@tanstack/query/exhaustive-deps": "error" */
 
useQuery({
  queryKey: ["todo"],
  queryFn: () => api.getTodo(todoId),
});
 
const todoQueries = {
  detail: (id) => ({ queryKey: ["todo"], queryFn: () => api.getTodo(id) }),
};

이 규칙에 대한 올바른 코드 예제:

useQuery({
  queryKey: ["todo", todoId],
  queryFn: () => api.getTodo(todoId),
});
 
const todoQueries = {
  detail: (id) => ({ queryKey: ["todo", id], queryFn: () => api.getTodo(id) }),
};

When Not To Use It

쿼리 키의 규칙에 신경 쓰지 않는 경우 이 규칙을 사용할 필요가 없습니다.

Attributes

  • ✅ 추천됨
  • 🔧 자동 수정 가능