useIsFetching
TypeScript
1function useIsFetching(filters?: Omit<QueryFilters<readonly unknown[]>, "fetchStatus">, queryClient?: QueryClient): ReactiveValue<number>;定义于:packages/svelte-query/src/useIsFetching.svelte.ts:40
useIsFetching 函数返回你的应用当前正在加载或后台拉取(fetching)的查询(queries)数量(适用于全应用范围的加载指示器)。
参数
filters?
Omit<QueryFilters<readonly unknown[]>, "fetchStatus">
用于缩小计数范围的 QueryFilters。若省略,则统计所有正在拉取的查询。
filters 属性
基于 QueryFilters 构建。参见上方类型定义,了解其影响范围。
queryClient?
使用此参数可指定自定义的 QueryClient;否则将使用离当前组件最近的上下文中的 QueryClient。
返回值
ReactiveValue<number>
一个响应式值——读取 .current 即可获取当前正在拉取的匹配查询数量。
示例
svelte
1<script lang="ts">2 import { useIsFetching } from '@tanstack/svelte-query'3 4 // How many queries matching the posts prefix are fetching?5 const isFetchingPosts = useIsFetching({ queryKey: ['posts'] })6</script>7 8{#if isFetchingPosts.current}9 <span>Refreshing posts...</span>10{/if}一个全局加载指示器,用于任何后台拉取的查询,而不仅限于当前屏幕中显示的查询:
svelte
1<script lang="ts">2 import { useIsFetching } from '@tanstack/svelte-query'3 4 const isFetching = useIsFetching()5</script>6 7{#if isFetching.current}8 <div>Queries are fetching in the background...</div>9{/if}