injectIsFetching
TypeScript
1function injectIsFetching(filters?: Omit<QueryFilters<readonly unknown[]>, "fetchStatus">, options?: InjectIsFetchingOptions): Signal<number>;定义于:packages/angular-query-experimental/src/inject-is-fetching.ts:63
注入一个信号(signal),用于跟踪你的应用当前正在加载或后台拉取(fetch)的查询数量(适用于全应用范围的加载指示器)。
参数
filters?
Omit<QueryFilters<readonly unknown[]>, "fetchStatus">
用于缩小匹配查询范围的 QueryFilters。
filters 属性
基于 QueryFilters 构建。请参阅上方类型定义以了解其具体影响。
options?
额外配置项
options 属性
| 属性 | 类型 | 描述 |
|---|---|---|
injector? |
Injector |
创建 isFetching 信号所用的 Injector。若未提供此选项,则使用当前注入上下文(通过 inject 获取)。 |
返回值
Signal<number>
一个 Signal,其值为你的应用当前正在加载或后台拉取的查询数量。
示例
angular-ts
1@Component({2 selector: 'posts-fetching-indicator',3 template: `4 @if (isFetchingPosts()) {5 <span>Refreshing posts...</span>6 }7 `,8})9export class PostsFetchingIndicator {10 // How many queries matching the posts prefix are fetching?11 readonly isFetchingPosts = injectIsFetching({ queryKey: ['posts'] })12}适用于任何后台拉取的查询(而不仅限于当前屏幕上的查询)的全局加载指示器:
angular-ts
1@Component({2 selector: 'global-loading-indicator',3 template: `4 @if (isFetching()) {5 <div>Queries are fetching in the background...</div>6 }7 `,8})9export class GlobalLoadingIndicator {10 readonly isFetching = injectIsFetching()11}