Gatsby: Erro GraphQL Argumento desconhecido `slug`

Criado em 10 set. 2017  ·  3Comentários  ·  Fonte: gatsbyjs/gatsby

Olá a todos. Tentando conectar conteúdo com um blog usando o iniciador avançado. Retirei os plug-ins do sistema de arquivos do mix e estou tentando puxar um exemplo de postagem. No entanto, estou recebendo um erro GraphQL Error Unknown argument slug ao iniciar o servidor de desenvolvimento.

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)
  })
}

Eu tenho o contexto definido para incluir "slug" que, se bem entendi, é onde ele se torna disponível para a consulta de GraphQL pós-componente real ... mas está gerando o erro.
Aqui estão algumas das saídas do meu console onde isso acontece

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
...

Eu sou muito novo no GraphQL, então pode estar faltando algo óbvio aqui. Algo fora do comum pelo que você pode ver aqui? Obrigado por olhar!

Comentários muito úteis

Ah, certo, sim, essa consulta não teria funcionado. Certifique-se de testar suas consultas no Graph i QL antes de adicioná-las aos seus componentes.

"all" serve para consultar todos os nós de um tipo. Sem tudo é para consultar um único item.

Todos 3 comentários

É possível que um nó não tenha um slug, talvez?

No domingo, 10 de setembro de 2017, 7h17, Josh Weaver [email protected] escreveu:

Olá a todos. Tentando conectar conteúdo a um blog usando o avançado
iniciante. Retirei os plug-ins do sistema de arquivos do mix e estou tentando
apenas para puxar uma amostra de postagem. No entanto, atualmente estou recebendo um
erro GraphQL Error Slug de argumento desconhecido ao iniciar o servidor de desenvolvimento.

exportações.createPages = ({graphql, boundActionCreators}) => {
const {createPage} = boundActionCreators
retornar nova promessa ((resolver, rejeitar) => {
graphql (
{ allContentfulBlogPost(limit: 1000) { edges { node { id slug } } } }
)
.então (resultado => {
if (result.errors) {
rejeitar (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)

})
}

Eu tenho o contexto definido para incluir "slug" que, se bem entendi, é
onde ele se torna disponível para a consulta de gráfico SQL pós-componente real ...
mas está gerando o erro.
Aqui estão algumas das saídas do meu console onde isso acontece

Obter dados de conteúdo: 404.350 ms
fonte de sucesso e nós de transformação - 0,552 s
esquema de construção de sucesso - 0,548 s
sucesso na criação de layouts - 0,055 s
⠁ /xxxxxxx/src/templates/post.jsx
{id: 'c7juaTIcg6cW2wAGKCQuios', slug: 'post de teste'}
sucesso na criação de páginas - 0,061 s
sucesso createPagesStatefully - 0,023 s
Erro GraphQL Argumento desconhecido slug

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

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

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

Eu sou muito novo no GraphQL, então pode estar faltando algo óbvio aqui.

-
Você está recebendo isto porque está inscrito neste tópico.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/gatsbyjs/gatsby/issues/2069 ou silencie a conversa
https://github.com/notifications/unsubscribe-auth/AAEVh7fahni3VfI4tz_PphtJPctw2jV5ks5sg2LWgaJpZM4PSM2E
.

Bem, eu só tinha um nó / postagem no Contentful.

Hmm .. Acabei mudando a consulta enquanto ela estava em execução de allContentfulBlogPost para contentfulBlogPost e funciona agora ... Mas, sendo tão novo no GraphQL, não tenho certeza se entendi o diferença.

Ah, certo, sim, essa consulta não teria funcionado. Certifique-se de testar suas consultas no Graph i QL antes de adicioná-las aos seus componentes.

"all" serve para consultar todos os nós de um tipo. Sem tudo é para consultar um único item.

Esta página foi útil?
0 / 5 - 0 avaliações