본문으로 건너뛰기

createQueryController

function createQueryController<TQueryFnData, TError, TData, TQueryData, TQueryKey>(
host,
options,
queryClient?): QueryResultAccessor<TData, TError>;

정의 위치: packages/lit-query/src/createQueryController.ts:355

호스트가 단일 쿼리를 구독하도록 하는 Lit 반응형 컨트롤러를 생성합니다.

반환된 접근자는 호출할 수 있으며 current, refetch도 노출합니다, suspensedestroy. options가 함수이면 다음 도중에 다시 읽습니다 쿼리 키와 옵션이 반응형 호스트 상태를 따를 수 있도록 호스트를 업데이트합니다.

queryClient를 생략하면 컨트롤러는 다음에서 클라이언트를 확인합니다 연결된 가장 가까운 QueryClientProvider.

타입 매개변수

TQueryFnData

TQueryFnData = unknown

TError

TError = Error

TData

TData = TQueryFnData

TQueryData

TQueryData = TQueryFnData

TQueryKey

TQueryKey extends readonly unknown[] = readonly unknown[]

매개변수

host

ReactiveControllerHost

쿼리를 소유하는 Lit 반응형 컨트롤러 호스트 구독.

옵션

Accessor<CreateQueryOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>>

쿼리 옵저버 옵션 또는 옵션을 반환하는 getter입니다.

queryClient?

QueryClient

선택적인 명시적 query client입니다. 다음을 위해 이를 제공하십시오 Lit 컨텍스트에서 클라이언트를 확인하면 안 되는 컨트롤러입니다.

반환값

QueryResultAccessor<TData, TError>

쿼리 헬퍼 메서드가 포함된 최신 쿼리 결과의 접근자입니다.

예시

import { LitElement, html } from 'lit'
import { createQueryController } from '@tanstack/lit-query'

class TodosView extends LitElement {
private readonly todos = createQueryController(this, {
queryKey: ['todos'],
queryFn: async () => fetch('/api/todos').then((r) => r.json()),
})

render() {
const query = this.todos()

if (query.isPending) return html`Loading...`
if (query.isError) return html`Error`

return html`<ul>${query.data.map((todo) => html`<li>${todo.title}</li>`)}</ul>`
}
}