跳到主要内容

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​

ParameterTypeDescription
EntityTypeT实体类型;其静态面必须提供 method 指定的仓库查询。
methodstring静态仓库查询方法名。
defaultValueTResult首次订阅前以及实体类型变化时使用的占位值。
optionsUseOptions<TOptions>查询选项常量或幂等 factory。

Returns​

RxDBResource<TResult>

当前 render 的查询资源快照,状态组合见 RxDBResource。

Throws​

选项不可序列化,或 factory 在同一 render 返回不同结构时同步抛出。

Remarks​

选项按内容生成查询身份;结构相等的新对象不会重订阅。合法实体游标会按排序字段投影, 其他类实例会被拒绝。身份变化时先同步复位资源元数据,再在 layout effect 失效旧请求, 因此旧 Observable 不能在 passive cleanup 前污染新查询。

查询方法缺失、同步抛错或 Observable error 都写入 resource.error,不会从 effect 抛到调用栈。 组件卸载或查询身份变化时取消订阅并拒绝迟到回调。SSR 不执行 effect,资源保持初始状态; 选项解析仍发生在服务端 render,非法选项照常同步抛错。