Gatsby: Error de GraphQL Argumento desconocido `slug`

Creado en 10 sept. 2017  ·  3Comentarios  ·  Fuente: gatsbyjs/gatsby

Hola a todos. Intentando conectar contenido a un blog usando el iniciador avanzado. Saqué los complementos del sistema de archivos de la mezcla y estoy tratando de obtener una publicación de muestra. Sin embargo, actualmente recibo un error GraphQL Error Unknown argument slug al iniciar el servidor de desarrollo.

exports.createPages = ({ graphql, boundActionCreators }) => {
  const { createPage } = boundActionCreators
  return new Promise((resolve, reject) => {
    graphql(
      `
      {
        allContentfulBlogPost(limit: 1000) {
          edges {
            node {
              id
              slug
            }
          }
        }
      }
    `
    )
      .then(result => {
        if (result.errors) {
          reject(result.errors)
        }
        const postPage = path.resolve("src/templates/post.jsx");
        _.each(result.data.allContentfulBlogPost.edges, edge => {
          console.log(edge.node);

          createPage({
            path: `/post/${edge.node.slug}`,
            component: postPage,
            context: {
              id: edge.node.id,
              slug: edge.node.slug
            },
          })
        })
      })
      .then(resolve)
  })
}

Tengo un contexto configurado para incluir "slug" que, si lo entiendo correctamente, es donde estará disponible para la consulta graphQL del componente de publicación real ... pero está arrojando el error.
Aquí está parte de la salida de mi consola donde sucede esto

Fetch Contentful data: 404.350ms
success source and transform nodes — 0.552 s
success building schema — 0.548 s
success createLayouts — 0.055 s
⠁ /xxxxxxx/src/templates/post.jsx
{ id: 'c7juaTIcg6cW2wAGKCQuios', slug: 'test-post' }
success createPages — 0.061 s
success createPagesStatefully — 0.023 s
GraphQL Error Unknown argument `slug`

  file: /Users/joshuaweaver/Documents/JoyfulNoise/joyfulnoiseliving/src/templates/post.jsx

   1 |
   2 |   query BlogPostBySlug($slug: String!) {
>  3 |     allContentfulBlogPost(slug: { eq: $slug }) {
     |                           ^
   4 |       title
   5 |       slug
...

Soy bastante nuevo en GraphQL, por lo que podría estar perdiendo algo obvio aquí. ¿Algo fuera de lo común de lo que puedes ver aquí? ¡Gracias por mirar!

Comentario más útil

Ah, claro, sí, esa consulta no habría funcionado. Asegúrese de probar sus consultas en Graph i QL antes de agregarlas a sus componentes.

"todos" es para consultar todos los nodos de un tipo. Sin todo es para consultar un solo artículo.

Todos 3 comentarios

¿Es posible que un nodo no tenga una babosa?

El domingo, 10 de septiembre de 2017 a las 7:17 a.m., Josh Weaver [email protected] escribió:

Hola a todos. Tratando de conectar contenido a un blog usando el avanzado
inicio. Saqué los complementos del sistema de archivos de la mezcla y estoy intentando
para que se detenga una publicación de muestra. Sin embargo, actualmente estoy obteniendo un
error GraphQL Error Slug de argumento desconocido al iniciar el servidor de desarrollo.

Exportaciones.createPages = ({graphql, boundActionCreators}) => {
const {createPage} = boundActionCreators
devolver nueva promesa ((resolver, rechazar) => {
graphql
{ allContentfulBlogPost(limit: 1000) { edges { node { id slug } } } }
)
.entonces (resultado => {
if (result.errors) {
rechazar (resultado.errores)
}
const postPage = path.resolve ("src / templates / post.jsx");
_.each (result.data.allContentfulBlogPost.edges, edge => {
console.log (edge.node);

      createPage({
        path: `/post/${edge.node.slug}`,
        component: postPage,
        context: {
          id: edge.node.id,
          slug: edge.node.slug
        },
      })
    })
  })
  .then(resolve)

})
}

Tengo un contexto configurado para incluir "slug" que, si lo entiendo correctamente, es
donde está disponible para la consulta graphQL del componente posterior real ...
pero está arrojando el error.
Aquí está parte de la salida de mi consola donde sucede esto

Obtener datos de contenido: 404,350 ms
fuente de éxito y nodos de transformación - 0.552 s
esquema de construcción de éxito - 0.548 s
éxito createLayouts - 0.055 s
⠁ /xxxxxxx/src/templates/post.jsx
{id: 'c7juaTIcg6cW2wAGKCQuios', slug: 'test-post'}
éxito createPages - 0.061 s
éxito createPagesStatefully - 0.023 s
Error de GraphQL Argumento desconocido slug

archivo: /Users/joshuaweaver/Documents/JoyfulNoise/joyfulnoiseliving/src/templates/post.jsx

1 |
2 | query BlogPostBySlug ($ slug: String!) {

3 | allContentfulBlogPost (slug: {eq: $ slug}) {
| ^
4 | título
5 | babosa
...

Soy bastante nuevo en GraphQL, por lo que podría estar perdiendo algo obvio aquí.

-
Estás recibiendo esto porque estás suscrito a este hilo.
Responda a este correo electrónico directamente, véalo en GitHub
https://github.com/gatsbyjs/gatsby/issues/2069 , o silenciar el hilo
https://github.com/notifications/unsubscribe-auth/AAEVh7fahni3VfI4tz_PphtJPctw2jV5ks5sg2LWgaJpZM4PSM2E
.

Bueno, solo tuve un nodo / publicación en Contentful.

Hmm ... Terminé cambiando la consulta mientras se ejecutaba de allContentfulBlogPost a contentfulBlogPost y funciona ahora ... Pero, siendo tan nuevo en GraphQL, no estoy seguro de entender el diferencia.

Ah, claro, sí, esa consulta no habría funcionado. Asegúrese de probar sus consultas en Graph i QL antes de agregarlas a sus componentes.

"todos" es para consultar todos los nodos de un tipo. Sin todo es para consultar un solo artículo.

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

andykais picture andykais  ·  3Comentarios

ferMartz picture ferMartz  ·  3Comentarios

benstr picture benstr  ·  3Comentarios

magicly picture magicly  ·  3Comentarios

jimfilippou picture jimfilippou  ·  3Comentarios