译零 TransZero · TanStack Query 中文文档
主站

createMutationController

更新于 2026-11-02 Lit 查看英文原文 ↗
TypeScript
1function createMutationController<TData = unknown, TError = Error, TVariables = void, TOnMutateResult = unknown>(2   host: ReactiveControllerHost,3   options: Accessor<CreateMutationOptions<TData, TError, TVariables, TOnMutateResult>>,4   queryClient?: QueryClient5): MutationResultAccessor<TData, TError, TVariables, TOnMutateResult>;

定义位置:packages/lit-query/src/createMutationController.ts:326

创建一个 Lit 响应式控制器,使宿主组件订阅一个修改(mutation)。

返回的访问器(accessor)既可调用,也暴露 current、mutate、mutateAsync、reset 和 destroy。当 options 是一个函数时,它会在宿主更新期间被重新读取,从而使修改选项能够响应宿主的响应式状态。

如果省略 queryClient,该控制器将从最近连接的 QueryClientProvider 中解析查询客户端(QueryClient)。

类型参数

TData

TData = unknown

TError

TError = Error

TVariables

TVariables = void

TOnMutateResult

TOnMutateResult = unknown

参数

host

ReactiveControllerHost

拥有该修改订阅的 Lit 响应式控制器宿主。

options

Accessor<CreateMutationOptions<TData, TError, TVariables, TOnMutateResult>>

修改观察者选项,或一个返回该选项的 getter 函数。

options 的属性

基于 MutationObserverOptions 构建。参见上方类型定义以了解其影响范围。

queryClient?

QueryClient

可选的显式查询客户端。为那些不应从 Lit 上下文中解析查询客户端的控制器提供此参数。

返回值

MutationResultAccessor<TData, TError, TVariables, TOnMutateResult>

一个用于获取最新修改结果的访问器,并附带修改辅助方法。

示例

TypeScript
1import { LitElement, html } from 'lit'2import { createMutationController } from '@tanstack/lit-query'3 4class AddTodoForm extends LitElement {5  private readonly addTodo = createMutationController(this, {6    mutationFn: (title: string) =>7      fetch('/api/todos', { method: 'POST', body: JSON.stringify({ title }) }),8  })9 10  render() {11    const mutation = this.addTodo()12 13    return html`14      <button ?disabled=${mutation.isPending} @click=${() => this.addTodo.mutate('Ship docs')}>15        Add todo16      </button>17    `18  }19}

本页为 TanStack Query 文档(Lit 版)的非官方中文翻译,原文由上游团队维护,遵循 MIT 许可。 译文如有偏差,以英文原文为准。

译自上游 59d11de