본문으로 건너뛰기

mutationOptions

뮤테이션 옵션을 타입 안전한 방식으로 공유하고 재사용할 수 있습니다.

예시

export class QueriesService {
private http = inject(HttpClient)
private queryClient = inject(QueryClient)

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

class ComponentOrService {
queries = inject(QueriesService)
id = signal(0)
mutation = injectMutation(() => this.queries.updatePost(this.id()))

save() {
this.mutation.mutate({ title: 'New Title' })
}
}

매개변수​

뮤테이션 옵션입니다.

호출 시그니처​

function mutationOptions<TData, TError, TVariables, TOnMutateResult>(options): WithRequired<CreateMutationOptions<TData, TError, TVariables, TOnMutateResult>, "mutationKey">;

정의 위치: mutation-options.ts:39

뮤테이션 옵션을 타입 안전한 방식으로 공유하고 재사용할 수 있습니다.

예시

export class QueriesService {
private http = inject(HttpClient)
private queryClient = inject(QueryClient)

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

class ComponentOrService {
queries = inject(QueriesService)
id = signal(0)
mutation = injectMutation(() => this.queries.updatePost(this.id()))

save() {
this.mutation.mutate({ title: 'New Title' })
}
}

타입 매개변수​

TData​

TData = unknown

TError​

TError = Error

TVariables​

TVariables = void

TOnMutateResult​

TOnMutateResult = unknown

매개변수​

옵션​

WithRequired&lt;CreateMutationOptions&lt;TData, TError, TVariables, TOnMutateResult>, "mutationKey">

뮤테이션 옵션입니다.

반환값​

WithRequired&lt;CreateMutationOptions&lt;TData, TError, TVariables, TOnMutateResult>, "mutationKey">

뮤테이션 옵션.

호출 시그니처​

function mutationOptions<TData, TError, TVariables, TOnMutateResult>(options): Omit<CreateMutationOptions<TData, TError, TVariables, TOnMutateResult>, "mutationKey">;

정의 위치: mutation-options.ts:53

뮤테이션 옵션을 타입 안전한 방식으로 공유하고 재사용할 수 있습니다.

예시

export class QueriesService {
private http = inject(HttpClient)
private queryClient = inject(QueryClient)

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

class ComponentOrService {
queries = inject(QueriesService)
id = signal(0)
mutation = injectMutation(() => this.queries.updatePost(this.id()))

save() {
this.mutation.mutate({ title: 'New Title' })
}
}

타입 매개변수​

TData​

TData = unknown

TError​

TError = Error

TVariables​

TVariables = void

TOnMutateResult​

TOnMutateResult = unknown

매개변수​

옵션​

Omit&lt;CreateMutationOptions&lt;TData, TError, TVariables, TOnMutateResult>, "mutationKey">

뮤테이션 옵션입니다.

반환값​

Omit&lt;CreateMutationOptions&lt;TData, TError, TVariables, TOnMutateResult>, "mutationKey">

뮤테이션 옵션.