Variables/arguments 没有使用我的 graphql 查询 - 我做错了什么?
Variables/arguments aren't working with my graphql query - What am I doing wrong?
背景:我正在使用 gatsby 建立一个站点,我还想利用 gatsby-helmet 插件向每个页面注入 header 数据。头盔组件将根据正在呈现的页面加载动态数据。我正在 parent object siteMetadata
.
中的 gatsby-config.js
文件中设置数据
配置文件如下所示:
module.exports = {
plugins: [`gatsby-plugin-react-helmet`],
siteMetadata: {
pages: [
{
id: "home",
title: "the page title",
description: "the page description",
},
],
},
};
我是 graphql 的新手。我正在使用 graphql IDE 来生成查询,但我被困在如何过滤以仅获取具有特定 [=16= 的 pages
object ].我已经阅读了关于 variables/arguments 的文档,但我显然遗漏了一些东西,因为我只收到错误。在这一点上,我不知道是我的数据设置不正确,还是我在 graphql 中缺少某些东西,或者两者兼而有之。
无论如何,我真的需要一些帮助。为了不浪费您的时间,如果以下是我的基本查询,我将如何设置它以便使用 variable/argument?
按页面 ID 过滤结果
谢谢!
query MyQuery {
site {
siteMetadata {
pages {
id
description
title
}
}
}
}
site
过滤器将查找与过滤器匹配的任何站点节点。它并不像您尝试的那样过滤节点的子字段。
也就是说,您可以使用 JavaScript:
过滤 GraphQL siteMetadata
结果
const pages = data.site.siteMetadata.pages;
pages.filter(pageItem => /* whatever filter you need */);
更多详情:https://github.com/gatsbyjs/gatsby/issues/13989
您可以在 own using schema customization API 上添加此“功能”。
背景:我正在使用 gatsby 建立一个站点,我还想利用 gatsby-helmet 插件向每个页面注入 header 数据。头盔组件将根据正在呈现的页面加载动态数据。我正在 parent object siteMetadata
.
gatsby-config.js
文件中设置数据
配置文件如下所示:
module.exports = {
plugins: [`gatsby-plugin-react-helmet`],
siteMetadata: {
pages: [
{
id: "home",
title: "the page title",
description: "the page description",
},
],
},
};
我是 graphql 的新手。我正在使用 graphql IDE 来生成查询,但我被困在如何过滤以仅获取具有特定 [=16= 的 pages
object ].我已经阅读了关于 variables/arguments 的文档,但我显然遗漏了一些东西,因为我只收到错误。在这一点上,我不知道是我的数据设置不正确,还是我在 graphql 中缺少某些东西,或者两者兼而有之。
无论如何,我真的需要一些帮助。为了不浪费您的时间,如果以下是我的基本查询,我将如何设置它以便使用 variable/argument?
按页面 ID 过滤结果谢谢!
query MyQuery {
site {
siteMetadata {
pages {
id
description
title
}
}
}
}
site
过滤器将查找与过滤器匹配的任何站点节点。它并不像您尝试的那样过滤节点的子字段。
也就是说,您可以使用 JavaScript:
过滤 GraphQLsiteMetadata
结果
const pages = data.site.siteMetadata.pages;
pages.filter(pageItem => /* whatever filter you need */);
更多详情:https://github.com/gatsbyjs/gatsby/issues/13989
您可以在 own using schema customization API 上添加此“功能”。