J'essaye de construire un Type dans mon gatsby-node.js
qui supporte une valeur optionnelle. Ce qui, je pense, est fait avec [String!]!
.
Comment puis-je charger le nouveau type que j'ai créé à l'intérieur de gatsby-node.js
en home.js
?
gatsby-node.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);
};
pages/home/home.js :
export const query = graphql`
query HomeQuery($path: String!) {
markdownRemark(frontmatter: { path: { eq: $path } }) {
html
frontmatter {
features {
title
description
}
}
}
}
`;
home.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.
---
Cela doit fonctionner de telle sorte que si le features
réseau à l'intérieur home.md
est vide, alors GraphQL n'envoie pas d'erreur.
S'il vous plaît, ne me dites pas de toujours inclure au moins une valeur dans le tableau, car ce n'est pas pratique, ma solution doit supporter aucune valeur dans mon tableau.
J'ai passé deux heures à parcourir la documentation/les problèmes en rond pour essayer de trouver une solution qui fonctionne, s'il vous plaît, que quelqu'un me sauve !