Как исправить "Неизвестный аргумент 'slug'" в gatsbyjs? - PullRequest
0 голосов
/ 27 апреля 2019

В настоящее время я пытаюсь создать сайт блога, используя gatsbyjs, и хотел бы, чтобы в моих сообщениях блога создавались страницы для них программным способом.

Я выполнил действия, описанные в разделе учебных пособий официальной документации, но вместо создания страниц из файла уценки я извлекаю данные из содержательной CMS. Я продолжаю нажимать на этот блок всякий раз, когда запускаю свой код.

Гэтсби-node.js

const path= require('path')

exports.createPages=({graphql,actions})=>{
const {createPage}=actions

const blogPost= path.resolve('./src/components/blogComponents/blog-post.js')
return new Promise((resolve,reject)=>{
    graphql(`
    {
        allContentfulBlog{
            edges{
              node{
                slug
              }
            }
          }
    }
`).then(results=>{
    // console.log(results)
    if(results.error){
        reject(results.error)
    }
      // create blog post pages
const posts=results.data.allContentfulBlog.edges

posts.forEach((post,index)=>{
    console.log(`showing slugs: ${post.node.slug}`)

   createPage({
        path:post.node.slug,
        component:blogPost ,
        context:{

            slug:post.node.slug,

        } 
    })

    })
}).then(resolve)
}) 
}

блог-post.js

   import React from 'react'
   import { graphql} from 'gatsby'


  const blogPost=({data})=>{
return (
    <div>
        new page created
    </div>
)
 }

 export default blogPost
 export const pageQuery= graphql`
  query ($slug: String!){
     allContentfulBlog (slug:{eq: $slug }) {
      edges{
      node{
       content{
           content
       }
      }
    }
  }
 }
 `

Я ожидал, что файл blog-post.js получит все соответствующие переменные, но вместо этого он продолжал выдавать ошибку «неизвестный аргумент 'slug'", делая ссылку на файл blog-post.js.

1 Ответ

2 голосов
/ 29 апреля 2019

В blog-post.js похоже, что вы, возможно, фильтровали сообщения неправильно; либо сделайте это:

 export const pageQuery= graphql`
  query ($slug: String!){

-    allContentfulBlog (slug:{eq: $slug }) {

+    allContentfulBlog (filter: { slug: { eq: $slug } })

      edges {
        node {
         content {
           content
         }
        }
      }
    }
   }
 `

Или это:

 export const pageQuery= graphql`
  query ($slug: String!){

-    allContentfulBlog (slug:{eq: $slug }) {

+    ContentfulBlog (slug:{eq: $slug }) {

     content {
       content
     }
    }
   }
 `
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...