es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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!

Tags:  , ,

Answer

  1. Avatar for 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:

    • Verificar si los datos de “redirect” se están obteniendo en la consulta GraphQL.
    • Verificar si hay algún error en la consulta. Ejecutar la consulta en GraphiQL y asegurarse de que esté devolviendo los datos esperados.

    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:

    • Verificar que la definición de “Frontmatter” en “gatsby-node.js” sea correcta y coincida con las propiedades del encabezado de los archivos de marcado del blog.
    • Verificar si hay algún error en los archivos de marcado del blog. Asegurarse de que tengan las propiedades del encabezado correctas, incluyendo la propiedad “redirect”.

    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

    • Asegurarse de que Gatsby esté ejecutando la versión más reciente del código. Ejecutar “gatsby clean” antes de construir para asegurarse de que no haya archivos o datos restantes de compilaciones anteriores.
    • Verificar los registros de la consola en busca de mensajes de error o datos faltantes.
    • Verificar otros archivos y fragmentos de código relevantes que puedan estar relacionados con el problema, como componentes personalizados o funciones de utilidad.

    5. Recursos

Comments are closed.