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

createInfiniteQueryController

更新于 2026-11-02 Lit 查看英文原文 ↗
TypeScript
1function createInfiniteQueryController<TQueryFnData = unknown, TError = Error, TData = InfiniteData<TQueryFnData, unknown>, TQueryKey extends readonly unknown[] = readonly unknown[], TPageParam = unknown>(2   host: ReactiveControllerHost,3   options: Accessor<CreateInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>>,4   queryClient?: QueryClient5): InfiniteQueryResultAccessor<TData, TError>;

定义于:packages/lit-query/src/createInfiniteQueryController.ts:401

创建一个 Lit 响应式控制器,使宿主组件订阅一个无限查询(infinite query)。

返回的访问器(accessor)既可调用,也暴露 current、refetch、fetchNextPage、fetchPreviousPage 和 destroy。当 options 是一个函数时,它会在宿主更新期间被重新读取,因此查询键(query keys)和选项可响应宿主的响应式状态。

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

类型参数

TQueryFnData

TQueryFnData = unknown

TError

TError = Error

TData

TData = InfiniteData<TQueryFnData, unknown>

TQueryKey

TQueryKey extends readonly unknown[] = readonly unknown[]

TPageParam

TPageParam = unknown

参数

host

ReactiveControllerHost

拥有该无限查询订阅的 Lit 响应式控制器宿主。

options

Accessor<CreateInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>>

无限查询观察者(infinite query observer)选项,或一个返回该选项的 getter 函数。

options 的属性

基于 InfiniteQueryObserverOptions 构建。参见上方类型定义以了解其具体变更内容。

queryClient?

QueryClient

可选的显式查询客户端(query client)。对于不应从 Lit 上下文中解析查询客户端的控制器,请提供此参数。

返回值

InfiniteQueryResultAccessor<TData, TError>

一个用于获取最新无限查询结果的访问器,附带分页辅助方法(page helper methods)。

示例

TypeScript
1import { LitElement, html } from 'lit'2import { createInfiniteQueryController } from '@tanstack/lit-query'3 4class ProjectsView extends LitElement {5  private readonly projects = createInfiniteQueryController(this, {6    queryKey: ['projects'],7    queryFn: ({ pageParam }) => fetchProjects(pageParam),8    initialPageParam: 0,9    getNextPageParam: (lastPage) => lastPage.nextCursor,10  })11 12  render() {13    const query = this.projects()14 15    return html`16      <button ?disabled=${!query.hasNextPage} @click=${() => this.projects.fetchNextPage()}>17        Load more18      </button>19    `20  }21}

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

译自上游 59d11de