function mutationOptions<TData, TError, TVariables, TContext>(
options,
): CreateMutationOptions<TData, TError, TVariables, TContext>
function mutationOptions<TData, TError, TVariables, TContext>(
options,
): CreateMutationOptions<TData, TError, TVariables, TContext>
允许以类型安全的方式共享和重用 mutation options。
示例
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)
},
})
}
}
queries = inject(QueriesService)
idSignal = new Signal(0)
mutation = injectMutation(() => this.queries.updatePost(this.idSignal()))
mutation.mutate({ title: 'New Title' })
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)
},
})
}
}
queries = inject(QueriesService)
idSignal = new Signal(0)
mutation = injectMutation(() => this.queries.updatePost(this.idSignal()))
mutation.mutate({ title: 'New Title' })
• TData = unknown
• TError = Error
• TVariables = void
• TContext = unknown
MutationObserverOptions<TData, TError, TVariables, TContext>
mutation options。
CreateMutationOptions<TData, TError, TVariables, TContext>
Mutation options。