Gatsby: Kesalahan GraphQL Argumen tidak dikenal `slug`

Dibuat pada 10 Sep 2017  ·  3Komentar  ·  Sumber: gatsbyjs/gatsby

Hai semuanya. Mencoba menghubungkan konten ke blog menggunakan starter lanjutan. Saya telah mengeluarkan plugin sistem file dari campuran dan saya mencoba untuk mendapatkan contoh posting yang ditarik. Namun, saat ini saya mendapatkan kesalahan GraphQL Error Unknown argument slug saat memulai mengembangkan server.

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

Saya memiliki konteks yang diatur untuk menyertakan "siput" yang, jika saya mengerti dengan benar, adalah di mana ia tersedia untuk permintaan graphQL komponen posting aktual ...
Inilah beberapa keluaran konsol saya di mana ini terjadi

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

Saya cukup baru di GraphQL jadi saya bisa kehilangan sesuatu yang jelas di sini. Sesuatu yang luar biasa dari apa yang dapat Anda lihat di sini? Terima kasih telah melihat!

Komentar yang paling membantu

Oh benar, ya, kueri itu tidak akan berhasil. Pastikan untuk mencoba kueri Anda di Grafik i QL sebelum menambahkannya ke komponen Anda.

"all" adalah untuk menanyakan semua node dari suatu tipe. Tanpa semua adalah untuk menanyakan satu item.

Semua 3 komentar

Mungkinkah sebuah node tidak memiliki slug?

Pada Minggu, 10 Sep 2017, 7:17 Josh Weaver [email protected] menulis:

Hai semuanya. Mencoba menghubungkan konten ke blog menggunakan yang canggih
starter. Saya telah mengeluarkan plugin sistem file dari campuran dan saya mencoba
untuk hanya mendapatkan pos sampel menepi. Namun, saat ini saya mendapatkan
error GraphQL Error Siput argumen tidak diketahui saat memulai server pengembangan.

export.createPages = ({ graphql, boundActionCreators }) => {
const { createPage } = boundActionCreators
kembalikan Janji baru((putuskan, tolak) => {
grafikql(
{ allContentfulBlogPost(limit: 1000) { edges { node { id slug } } } }
)
.kemudian(hasil => {
if (hasil.kesalahan) {
tolak (hasil. kesalahan)
}
const postPage = path.resolve("src/templates/post.jsx");
_.each(result.data.allContentfulBlogPost.edges, edge => {
console.log(tepi.node);

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

})
}

Saya memiliki konteks yang diatur untuk memasukkan "siput" yang, jika saya mengerti dengan benar, adalah
di mana ia tersedia untuk permintaan graphQL komponen posting aktual ...
tapi itu melempar kesalahan.
Inilah beberapa keluaran konsol saya di mana ini terjadi

Ambil data yang Memuaskan: 404.350ms
sumber sukses dan mengubah node — 0,552 s
skema pembangunan sukses — 0,548 s
sukses createLayouts — 0,055 detik
/xxxxxxx/src/templates/post.jsx
{ id: 'c7juaTIcg6cW2wAGKCQuios', slug: 'test-post' }
sukses createPages — 0,061 dtk
sukses createPagesStatefully — 0.023 s
GraphQL Error Argumen tidak diketahui slug

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

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

3 | allContentfulBlogPost(siput: { eq: $siput }) {
| ^
4 | judul
5 | siput
...

Saya cukup baru di GraphQL jadi saya bisa kehilangan sesuatu yang jelas di sini.


Anda menerima ini karena Anda berlangganan utas ini.
Balas email ini secara langsung, lihat di GitHub
https://github.com/gatsbyjs/gatsby/issues/2069 , atau bisukan utasnya
https://github.com/notifications/unsubscribe-auth/AAEVh7fahni3VfI4tz_PphtJPctw2jV5ks5sg2LWgaJpZM4PSM2E
.

Yah, saya hanya punya satu node/posting di Contentful.

Hmm.. Saya akhirnya mengubah kueri saat dijalankan dari allContentfulBlogPost menjadi contentfulBlogPost dan berfungsi sekarang... Tapi, karena sangat baru di GraphQL, saya tidak yakin saya mengerti perbedaan.

Oh benar, ya, kueri itu tidak akan berhasil. Pastikan untuk mencoba kueri Anda di Grafik i QL sebelum menambahkannya ke komponen Anda.

"all" adalah untuk menanyakan semua node dari suatu tipe. Tanpa semua adalah untuk menanyakan satu item.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

totsteps picture totsteps  ·  3Komentar

timbrandin picture timbrandin  ·  3Komentar

signalwerk picture signalwerk  ·  3Komentar

andykais picture andykais  ·  3Komentar

ghost picture ghost  ·  3Komentar