You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何追踪Dexie的UseLiveQuery完成状态并处理加载与空数据场景

实现方案

直接通过条件渲染结合useLiveQuery返回的状态值就能快速实现需求,不需要额外复杂逻辑:

  1. 先解构useLiveQuery返回的加载状态和数据:
const { isLoading, data: items } = useLiveQuery(/* 你的查询配置 */);
  1. 按优先级判断渲染内容:
  • 当isLoading为true时,渲染加载器组件
  • 当加载完成且items为空数组时,渲染“未找到组件”
  • 否则渲染正常数据内容

完整代码示例:

function YourComponent() {
  const { isLoading, data: items } = useLiveQuery(/* 替换成你的查询参数 */);

  // 加载中显示加载器
  if (isLoading) {
    return <div className="loader">加载中...</div>;
  }

  // 数据为空显示未找到
  if (!items || items.length === 0) {
    return <div className="no-result">未找到组件</div>;
  }

  // 正常渲染数据
  return (
    <div className="content">
      {items.map(item => (
        <div key={item.id}>{item.name}</div>
      ))}
    </div>
  );
}

额外提示

  • 如果你的useLiveQuery还返回错误状态(比如error),可以额外加一层错误处理的条件渲染,避免异常情况
  • 可以把加载器、空状态组件封装成独立组件,方便在多个地方复用

内容的提问来源于stack exchange,提问作者Omroboto

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 12:54:25