修改Gatsby的queryData时遇StaticQuery无法获取结果问题求助
解决Gatsby StaticQuery获取失败及移除导航“Pages”选项的问题
排查Header组件的代码引用
打开Header组件文件,找到渲染导航的代码段,确认是否还在调用和“Pages”相关的数据源字段(比如data.site.siteMetadata.menu.pages)。如果之前写了类似{menu.pages.map(item => ...)}的渲染逻辑,必须把这部分代码删掉或注释掉——数据源删了但代码还在引用,必然会触发查询失败的报错。修正StaticQuery的查询语句
检查组件里的StaticQuery查询内容,要是还保留着请求“Pages”字段的代码(比如menu { pages { name path } }),直接把pages相关的查询节点删掉。修改完查询后,一定要重启gatsby develop服务,让Gatsby重新生成数据映射。清理配置文件里的菜单数据源
打开gatsby-config.js,找到siteMetadata里的menu配置项,把其中对应“Pages”的数组或对象完全删除。比如原本的配置如果是:siteMetadata: { menu: { main: [{ name: "Home", path: "/" }], pages: [{ name: "Pages", path: "/pages" }] } }直接移除
pages这一行即可。清除Gatsby缓存(兜底步骤)
如果上面操作完还是报错,运行gatsby clean命令清理缓存,之后再重新启动开发服务器。旧缓存里可能残留了之前的查询数据,清理后会重新构建完整的数据链路。
内容的提问来源于stack exchange,提问作者Aleksandr Komolkin
相关产品推荐
相关产品推荐

