背景:我正在使用盖茨比建立一个网站,我也想利用盖茨比头盔插件,以注入头数据到每一页。头盔组件将根据正在呈现的页面加载动态数据。我正在父对象gatsby-config.js中设置siteMetadata文件中的数据。
配置文件如下所示:
module.exports = {
plugins: [`gatsby-plugin-react-helmet`],
siteMetadata: {
pages: [
{
id: "home",
title: "the page title",
description: "the page description",
},
],
},
};我对graphql非常陌生。我正在使用graphql来生成查询,但我不得不考虑如何进行筛选,以便只获取具有特定pages的id对象。我已经阅读了有关变量/参数的文档,但是我显然遗漏了一些东西,因为我只得到了错误。在这一点上,我不知道是我的数据设置不正确,还是图形is遗漏了什么,或者两者都缺少。
无论如何,我真的需要一些帮助。这样我就不会浪费您的时间,如果下面是我的基本查询,我将如何设置它,以便使用变量/参数通过页面id过滤结果?
谢谢!
query MyQuery {
site {
siteMetadata {
pages {
id
description
title
}
}
}
}发布于 2022-04-26 11:11:53
site筛选器将找到与筛选器匹配的任何站点节点。它不打算像您尝试的那样过滤节点的子字段。
尽管如此,您可以使用GraphQL siteMetadata结果过滤JavaScript:
const pages = data.site.siteMetadata.pages;
pages.filter(pageItem => /* whatever filter you need */);更多细节:https://github.com/gatsbyjs/gatsby/issues/13989
您可以在您的自己使用模式自定义 API中添加这个“特性”。
https://stackoverflow.com/questions/72012723
复制相似问题