Die Objekt-Rest-Destrukturierung bei Abfrageergebnissen abonniert automatisch jedes Feld des Abfrageergebnisses, was zu unnötigen Neurendern führen kann. Dies stellt sicher, dass Sie sich nur für die Felder abonnieren, die Sie tatsächlich benötigen.
Beispiele fĂĽr falschen Code fĂĽr diese Regel
/* eslint "@tanstack/query/no-rest-destructuring": "warn" */
const useTodos = () => {
const { data: todos, ...rest } = useQuery({
queryKey: ['todos'],
queryFn: () => api.getTodos(),
})
return { todos, ...rest }
}
/* eslint "@tanstack/query/no-rest-destructuring": "warn" */
const useTodos = () => {
const { data: todos, ...rest } = useQuery({
queryKey: ['todos'],
queryFn: () => api.getTodos(),
})
return { todos, ...rest }
}
Beispiele fĂĽr korrekten Code fĂĽr diese Regel
const todosQuery = useQuery({
queryKey: ['todos'],
queryFn: () => api.getTodos(),
})
// normal object destructuring is fine
const { data: todos } = todosQuery
const todosQuery = useQuery({
queryKey: ['todos'],
queryFn: () => api.getTodos(),
})
// normal object destructuring is fine
const { data: todos } = todosQuery
Wenn Sie die Option notifyOnChangeProps manuell festlegen, können Sie diese Regel deaktivieren. Da Sie keine nachverfolgten Abfragen verwenden, sind Sie dafür verantwortlich, anzugeben, welche Props einen Neurender auslösen sollen.