createInfiniteQueryController
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?
可选的显式查询客户端(query client)。对于不应从 Lit 上下文中解析查询客户端的控制器,请提供此参数。
返回值
InfiniteQueryResultAccessor<TData, TError>
一个用于获取最新无限查询结果的访问器,附带分页辅助方法(page helper methods)。
示例
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}