useRepositoryQuery()
function useRepositoryQuery<T, TOptions, TResult>(
EntityType,
method,
defaultValue,
options
): RxDBResource<TResult>;
Defined in: rxdb-react/src/hooks.ts:71
把实体静态仓库的 Observable 查询接入 React render 生命周期。
Type Parameters
| Type Parameter |
|---|
T extends EntityType |
TOptions |
TResult |
Parameters
| Parameter | Type | Description |
|---|---|---|
EntityType | T | 实体类型;其静态面必须提供 method 指定的仓库查询。 |
method | string | 静态仓库查询方法名。 |
defaultValue | TResult | 首次订阅前以及实体类型变化时使用的占位值。 |
options | UseOptions<TOptions> | 查询选项常量或幂等 factory。 |
Returns
RxDBResource<TResult>
当前 render 的查询资源快照,状态组合见 RxDBResource。
Throws
选项不可序列化,或 factory 在同一 render 返回不同结构时同步抛出。
Remarks
选项按内容生成查询身份;结构相等的新对象不会重订阅。合法实体游标会按排序字段投影, 其他类实例会被拒绝。身份变化时先同步复位资源元数据,再在 layout effect 失效旧请求, 因此旧 Observable 不能在 passive cleanup 前污染新查询。
查询方法缺失、同步抛错或 Observable error 都写入 resource.error,不会从 effect 抛到调用栈。
组件卸载或查询身份变化时取消订阅并拒绝迟到回调。SSR 不执行 effect,资源保持初始状态;
选项解析仍发生在服务端 render,非法选项照常同步抛错。