Disallow object rest destructuring on query results
Source URL: https://tanstack.com/query/latest/docs/eslint/no-rest-destructuring
Disallow object rest destructuring on query results
Section titled “Disallow object rest destructuring on query results”Use object rest destructuring on query results automatically subscribes to every field of the query result, which may cause unnecessary re-renders. This makes sure that you only subscribe to the fields that you actually need.
Rule Details
Section titled “Rule Details”Examples of incorrect code for this rule:
/* eslint "@tanstack/query/no-rest-destructuring": "warn" */
const useTodos = () => { const { data: todos, ...rest } = useQuery({ queryKey: ['todos'], queryFn: () => api.getTodos(), }) return { todos, ...rest }}Examples of correct code for this rule:
const todosQuery = useQuery({ queryKey: ['todos'], queryFn: () => api.getTodos(),})
// normal object destructuring is fineconst { data: todos } = todosQueryWhen Not To Use It
Section titled “When Not To Use It”If you set the notifyOnChangeProps options manually, you can disable this rule.
Since you are not using tracked queries, you are responsible for specifying which props should trigger a re-render.
Attributes
Section titled “Attributes”- ✅ Recommended
- 🔧 Fixable