graphql - Gatsby / GraphQL 中的可选查询
问题描述
我有一个内容丰富的 Gatsby 站点,初始页面构建 GraphQL 如下所示:
{
allContentfulProduct {
edges {
node {
slug
contentfulid
}
}
}
}
这在使用预览 API 时工作正常,但在使用生产 API 时它会失败,除非我至少Product
发布了 1 个条目:
There was an error in your GraphQL query:
Cannot query field "allContentfulProduct" on type "Query". Did you mean ... [suggested entry names] ?
我很确定当我发布一个Product
东西时会按预期工作,但是有没有办法让这个查询成为可选的。查询应该返回零个结果,因此不会创建任何页面(如果没有发布条目,Product
则为预期结果)Product
解决方案
尝试添加到您的gatsby-node.js
文件中并解决它。
exports.createSchemaCustomization = ({ actions }) => {
const { createTypes } = actions
const typeDefs = `
type allContentfulProduct implements Node{
slug: String,
contentfulid: String
}`
推荐阅读
- c# - 使用 Xamarin Forms App(C#、Android 模拟器)连接到 AWS RDS MySQL 数据库时出现问题
- java - 如何在 Java 中使用 Unicode 字符填充字符串
- sql - Postgresql 行到 json 作为值数组(没有键)
- kentico - A 标签内的 Divs 和 H 标签
- python - Python:在 linux 终端中获取最后一个命令行
- arrays - 如何从嵌套数组响应正文中的一个 API 中获取变量?
- flutter - 如何从 JSON 计算日期之间的天数
- amazon-web-services - 如何在 Spot 队列中使用现有的 On-Demand 实例?
- java - java关闭扫描仪导致异常?
- excel - Excel 中令人沮丧的一组变量