在 netlify cms 和 gatsby js 中使图像可选
Make an image optional in netlify cms and gatsby js
我有一个相当简单的 Gatsby & Netlify CMS 站点。我无法应付使图像可选。对于 Netlify CMS,只需设置一个字段 required: false
。我如何为 Gatsby 编写查询,这样当图像实际上是一个空字符串时我不会收到错误 'GraphQL Error Field "image" must not have a selection since type "String" has no subfields.' 因为它在我的应用程序中不是强制性的?有什么解决办法吗?
图像的 GraphQL 查询:
image {
childImageSharp {
fluid(maxWidth: 2048)
...GatsbyImageSharpFluid
}
}
}
进入你的 gatsby-node.js,你必须定义一个 graphql 类型来处理这种情况。
exports.createSchemaCustomization = ({ actions }) => {
const { createTypes } = actions;
const typeDefs = `
type MarkdownRemark implements Node {
frontmatter: Frontmatter
}
type Frontmatter @infer {
yourimage: File @fileByRelativePath,
}
`;
createTypes(typeDefs);
};
我有一个相当简单的 Gatsby & Netlify CMS 站点。我无法应付使图像可选。对于 Netlify CMS,只需设置一个字段 required: false
。我如何为 Gatsby 编写查询,这样当图像实际上是一个空字符串时我不会收到错误 'GraphQL Error Field "image" must not have a selection since type "String" has no subfields.' 因为它在我的应用程序中不是强制性的?有什么解决办法吗?
图像的 GraphQL 查询:
image {
childImageSharp {
fluid(maxWidth: 2048)
...GatsbyImageSharpFluid
}
}
}
进入你的 gatsby-node.js,你必须定义一个 graphql 类型来处理这种情况。
exports.createSchemaCustomization = ({ actions }) => {
const { createTypes } = actions;
const typeDefs = `
type MarkdownRemark implements Node {
frontmatter: Frontmatter
}
type Frontmatter @infer {
yourimage: File @fileByRelativePath,
}
`;
createTypes(typeDefs);
};