본문으로 건너뛰기

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<CreateMutationOptions<TData, TError, TVariables, TOnMutateResult>, "mutationKey">

뮤테이션 옵션입니다.

반환값

WithRequired<CreateMutationOptions<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<CreateMutationOptions<TData, TError, TVariables, TOnMutateResult>, "mutationKey">

뮤테이션 옵션입니다.

반환값

Omit<CreateMutationOptions<TData, TError, TVariables, TOnMutateResult>, "mutationKey">

뮤테이션 옵션.