Gatsby: GraphQL-Fehler Unbekanntes Argument `Slug`

Erstellt am 10. Sept. 2017  ·  3Kommentare  ·  Quelle: gatsbyjs/gatsby

Hallo allerseits. Versuchen, mit dem erweiterten Starter einen Blog mit Inhalten zu verbinden. Ich habe die Dateisystem-Plugins aus dem Mix herausgezogen und versuche, nur einen Beispielbeitrag zu bekommen. Allerdings erhalte ich derzeit eine Fehlermeldung GraphQL Error Unknown argument slug beim Starten des Entwicklungsservers.

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

Ich habe den Kontext so eingestellt, dass er "slug" einschließt, was, wenn ich es richtig verstehe, für die eigentliche graphQL-Abfrage der Postkomponente verfügbar ist ... aber es wird der Fehler ausgegeben.
Hier sind einige meiner Konsolenausgaben, bei denen dies passiert

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

Ich bin ziemlich neu bei GraphQL, also könnte ich hier etwas Offensichtliches übersehen. Gibt es etwas Außergewöhnliches von dem, was Sie hier sehen können? Danke fürs Suchen!

Hilfreichster Kommentar

Oh richtig, ja, diese Abfrage hätte nicht funktioniert. Stellen Sie sicher, dass Sie Ihre Abfragen in Graph i QL ausprobieren, bevor Sie sie zu Ihren Komponenten hinzufügen.

"all" dient zum Abfragen aller Knoten eines Typs. Ohne alles ist für die Abfrage eines einzelnen Elements.

Alle 3 Kommentare

Ist es möglich, dass ein Knoten keine Schnecke hat?

Am So., 10. September 2017, 7:17 Uhr schrieb Josh Weaver [email protected] :

Hallo allerseits. Der Versuch, mithilfe der erweiterten Funktionen einen Blog mit Inhalten zu verbinden
Anlasser. Ich habe die Dateisystem-Plugins aus dem Mix herausgezogen und versuche es
um nur einen Beispielpost zu bekommen. Allerdings bekomme ich gerade eine
error GraphQL-Fehler Unbekannter Argument-Slug beim Starten des Entwicklungsservers.

exports.createPages = ({ graphql,boundActionCreators}) => {
const { createPage } =boundActionCreators
neues Versprechen zurückgeben ((auflösen, ablehnen) => {
graphql(
{ allContentfulBlogPost(limit: 1000) { edges { node { id slug } } } }
)
.dann(Ergebnis => {
if (result.errors) {
ablehnen(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)

})
}

Ich habe den Kontext so eingestellt, dass er "slug" enthält, was, wenn ich es richtig verstehe, ist
wo es für die eigentliche graphQL-Abfrage der Post-Komponente verfügbar wird...
aber es wirft den Fehler.
Hier sind einige meiner Konsolenausgaben, bei denen dies passiert

Inhaltliche Daten abrufen: 404.350ms
Erfolgsquelle und Transformationsknoten — 0,552 s
Erfolgsaufbauschema — 0,548 s
Erfolg createLayouts — 0,055 s
/xxxxxxx/src/templates/post.jsx
{ id: 'c7juaTIcg6cW2wAGKCQuios', Schnecke: 'test-post' }
erfolg createPages — 0.061 s
Erfolg createPagesStatefully — 0,023 s
GraphQL-Fehler Unbekanntes Argument slug

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

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

3 | allContentfulBlogPost(slug: { eq: $slug }) {
| ^
4 | Titel
5 | Schnecke
...

Ich bin ziemlich neu bei GraphQL, also könnte ich hier etwas Offensichtliches übersehen.


Sie erhalten dies, weil Sie diesen Thread abonniert haben.
Antworten Sie direkt auf diese E-Mail und zeigen Sie sie auf GitHub an
https://github.com/gatsbyjs/gatsby/issues/2069 oder den Thread stummschalten
https://github.com/notifications/unsubscribe-auth/AAEVh7fahni3VfI4tz_PphtJPctw2jV5ks5sg2LWgaJpZM4PSM2E
.

Nun, ich hatte nur einen Knoten/Post in Contentful.

Hmm.. Ich habe die Abfrage schließlich während der Ausführung von allContentfulBlogPost auf contentfulBlogPost geändert und sie funktioniert jetzt... Unterschied.

Oh richtig, ja, diese Abfrage hätte nicht funktioniert. Stellen Sie sicher, dass Sie Ihre Abfragen in Graph i QL ausprobieren, bevor Sie sie zu Ihren Komponenten hinzufügen.

"all" dient zum Abfragen aller Knoten eines Typs. Ohne alles ist für die Abfrage eines einzelnen Elements.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen