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

如何对Apollo useQuery返回的嵌套数据进行解构,直接获取内层用户对象

实现方案

嵌套对象解构+逐层设置默认值即可满足需求,既可以直接拿到内层returnUser数据,也能适配useQuery异步加载时的空值场景。

修改后的查询代码

const { 
  error, 
  loading, 
  data: { returnUser: user } = {} 
} = useQuery(resolvers.queries.ReturnUser, {
  variables: { userId: parseInt(id) },
});

语法说明

  • 用嵌套解构语法将data.returnUser属性直接重命名为user变量
  • 给外层data设置默认值{},避免查询未完成时data为undefined,解构内层属性时报错

简化后的JSX代码

return (
  <div>
    { user ?
      <p>Profile {user.name}</p> :
      <div>User not found</div> }
  </div>
);

极端场景适配

如果接口存在returnUser本身返回null/undefined的情况,可以给内层属性也加默认值,进一步提升稳定性:

const { 
  error, 
  loading, 
  data: { returnUser: user = null } = {} 
} = useQuery(resolvers.queries.ReturnUser, {
  variables: { userId: parseInt(id) },
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 05:24:00