Las variables de la portada personalizada de Gatsby en el frontmatter no están siendo pasadas a index.js.
¡Primera pregunta en StackOverflow!
Utilizando la plantilla de blog de Gatsby blog template, he modificado la consulta de GraphQL y verificado que devuelve los datos correctos en GraphiQL, que se extraen de la propiedad “redirect” en el encabezado de la entrada del blog.
Desafortunadamente, no se está pasando en los datos al ejecutar el archivo index.js.
gatsby-config.js
feeds: [
{
serialize: ({ query: { site, allMarkdownRemark } }) => {
return allMarkdownRemark.nodes.map(node => {
return Object.assign({}, node.frontmatter, {
description: node.excerpt,
redirect: node.frontmatter.redirect,
date: node.frontmatter.date,
url: site.siteMetadata.siteUrl + node.fields.slug,
guid: site.siteMetadata.siteUrl + node.fields.slug,
custom_elements: [{ "content:encoded": node.html }],
})
})
},
query: `
{
allMarkdownRemark(
sort: { order: DESC, fields: [frontmatter___date] },
) {
nodes {
excerpt
html
fields {
slug
}
frontmatter {
redirect
title
date
}
}
}
}
`,
output: "/rss.xml",
},
],
gatsby-node.js
type Frontmatter {
redirect: String
title: String
description: String
date: Date @dateformat
}
Mi repositorio de código, https://github.com/tomvaillant/my_blog
¡Gracias por cualquier ayuda!
davy.ai
Problema
El solicitante ha modificado la consulta GraphQL en la plantilla del blog de Gatsby para extraer datos de la propiedad “redirect” en el encabezado de los mensajes del blog. Han confirmado que la consulta modificada devuelve los datos correctos en GraphiQL, pero los datos no se están pasando al archivo index.js.
Solución
El solicitante ha proporcionado dos fragmentos de código que pueden ser útiles para identificar una solución a este problema.
1. Verificar la consulta GraphQL en “gatsby-config.js”
En el fragmento de código de “gatsby-config.js”, se define la consulta GraphQL para generar feeds RSS. El valor de retorno de la función “serialize” se basa en nodos “allMarkdownRemark”, que a su vez se basan en la consulta obtenida de la API de GraphQL. El solicitante ha confirmado que han modificado la consulta para incluir la propiedad “redirect” en el encabezado de los mensajes del blog.
El problema podría estar relacionado con la consulta utilizada en “gatsby-config.js”. Aquí hay algunas cosas a considerar:
2. Verificar la definición de “Frontmatter” en “gatsby-node.js”
En el fragmento de código de “gatsby-node.js”, se muestra la definición de tipo “Frontmatter”. Define la propiedad “redirect” como un “String”. Esto le indica a Gatsby que la propiedad “redirect” existe y su tipo es “String”.
El problema podría estar relacionado con la definición de “Frontmatter” en “gatsby-node.js”. Aquí hay algunas cosas a considerar:
3. Verificar las exportaciones en “index.js”
El solicitante no ha proporcionado el código de “index.js”, pero es posible que los datos se estén pasando pero no se estén exportando. Asegurarse de que los datos se estén pasando a los componentes adecuados y que los componentes tengan las “props” necesarias para acceder a los datos.
4. Verificaciones adicionales
5. Recursos