我正在尝试在我的gatsby-node.js
文件中构建一个支持可选值的类型。我认为已经完成了[String!]!
。
如何加载我在里面创建的新gatsby-node.js
类型home.js
?
盖茨比节点.js:
const path = require('path');
exports.createSchemaCustomization = ({ actions }) => {
const { createTypes } = actions;
const typeDefs = `
type markdownRemark implements Node {
frontmatter: Features
}
type Features {
title: [String!]!
description: [String!]!
}
`;
createTypes(typeDefs);
};
页面/主页/home.js:
export const query = graphql`
query HomeQuery($path: String!) {
markdownRemark(frontmatter: { path: { eq: $path } }) {
html
frontmatter {
features {
title
description
}
}
}
}
`;
主页.md:
---
path: "/"
features:
- title: Barns
description: Praesent commodo cursus magna vel scelerisque nisl consectetur et. Nullam id dolor id nibh ultricies vehicula ut id elit.
- title: Private Events
description: Praesent commodo cursus magna vel scelerisque nisl consectetur et. Nullam id dolor id nibh ultricies vehicula ut id elit.
- title: Food and Drinks
description: Praesent commodo cursus magna vel scelerisque nisl consectetur et. Nullam id dolor id nibh ultricies vehicula ut id elit.
- title: Spa
description: Praesent commodo cursus magna vel scelerisque nisl consectetur et. Nullam id dolor id nibh ultricies vehicula ut id elit.
---
这需要起作用,以便如果 's front matter 中的features
数组home.md
为空,则 GraphQL 不会引发错误。
请不要告诉我总是在数组中包含至少一个值,因为这不切实际,我的解决方案需要在我的数组中不支持任何值。
我花了两个小时在圈子里浏览文档/问题,试图找到一个可行的解决方案,请有人救我!