Framework
Version

Mutationsoptionen

Eine der besten Möglichkeiten, Mutationsoptionen zwischen mehreren Stellen zu teilen, ist die Verwendung des mutationOptions-Helfer. Zur Laufzeit gibt dieser Helfer einfach zurück, was Sie ihm übergeben, aber er bietet viele Vorteile, wenn Sie ihn mit TypeScript verwenden. Sie können alle möglichen Optionen für eine Mutation an einem Ort definieren, und Sie erhalten außerdem Typsicherheit und Typinferenz für alle davon.

ts
export class QueriesService {
  private http = inject(HttpClient)

  updatePost(id: number) {
    return mutationOptions({
      mutationFn: (post: Post) => Promise.resolve(post),
      mutationKey: ['updatePost', id],
      onSuccess: (newPost) => {
        //           ^? newPost: Post
        this.queryClient.setQueryData(['posts', id], newPost)
      },
    })
  }
}
export class QueriesService {
  private http = inject(HttpClient)

  updatePost(id: number) {
    return mutationOptions({
      mutationFn: (post: Post) => Promise.resolve(post),
      mutationKey: ['updatePost', id],
      onSuccess: (newPost) => {
        //           ^? newPost: Post
        this.queryClient.setQueryData(['posts', id], newPost)
      },
    })
  }
}