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

GatsbyJS中useStaticQuery用edges查询报错,改用nodes正常求解释

问题原因分析

首先看你第一段查询代码的语法:

query ExperienceQuery {
  allExperienceJson {
    edges {
      node {
          src
          desc
        }
      }
    }  <!-- 这里多了一个不必要的闭合大括号 -->
  }

这段查询存在语法错误——在edges字段闭合后,你多写了一个额外的},导致GraphQL解析器无法正确识别查询结构,因此抛出报错。

而你第二段使用nodes的查询,语法是完全正确的,没有多余的括号,所以能正常运行。

另外补充说明Gatsby中edges和nodes的关系:

  • 在Gatsby v3及以后的版本中,所有all*开头的数据源查询(比如allExperienceJson)都同时支持edges和nodes两种结构:
    • edges是传统结构,返回的是包含node字段的对象数组,每个node里才是你的数据
    • nodes是简化后的结构,直接返回你的数据数组,省去了一层edges的嵌套
  • 只要语法正确,两种写法在新版本Gatsby里都能正常工作,你第一段代码的问题核心是语法错误,而非edges字段本身不可用。

如果修正第一段代码的语法错误,去掉多余的那个大括号,查询就能正常运行了:

query ExperienceQuery {
  allExperienceJson {
    edges {
      node {
          src
          desc
        }
      }
    }
  }

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 11:01:03