Gatsby错误:您网站的“ gatsby-node.js”创建了一个页面,并且没有将路径传递给组件

时间:2020-09-02 02:25:34

标签: graphql gatsby

我就此问题仅在stackoverflow上找到另一篇文章。任何帮助将是巨大的!我一直在按照教程here尝试将Gatsby与GraphQL结合使用。但我不断收到错误消息:

错误#11322

您网站的“ gatsby-node.js”创建了一个页面,但未传递路径 到组件。

传递给createPage的页面对象:{ “路径”:“ / blog / technical-seo-with-graphcms”, “ componenent”:“ / Users / ela / Yao / Dev / paper-plane-project / src / templates / BlogPosts.js”, “上下文”:{ “帖子”:{ “ id”:“ ckadrcx4g00pw01525c5d2e56”, “ title”:“使用GraphCMS的技术SEO”, “ slug”:“ graph-seo”, “标签”:[ “ SEO” ], “作者”:{ “ id”:“ ckadqepn400gv0108p4debydk”, “名称”:“杰西·马丁” } } }

这是我的gatsby-node.js:

select month, count(), count_if(channel=1)*1./count()
from table where
... 

这是我的BlogPosts.js模板文件:

const path = require(`path`);

exports.createPages = async({graphql, actions: {createPage}}) => {
    const {data: {gcms : { posts }}} = await graphql(`
     query {
        gcms {
            posts (stage: PUBLISHED) {
                id
                title
                slug
                tags
                author {
                    id
                    name
                }
            }
        }
    }
    `);

    // const posts = pageQuery.data.gcms.posts

    const blogTemplates = {
        Article: path.resolve('./src/templates/BlogPosts.js'),
      }

    posts.forEach(post => createPage({
        path: `/blog/${post.slug}`,
        componenent: blogTemplates.Article,
        context : {
            post : post,
        }
    })
  );
}

任何帮助都会很棒。对于这个错误,我真的在网上找不到任何东西。

1 个答案:

答案 0 :(得分:0)

您的createPage函数中有一个错字。您键入componenent而不是component。应该是:

posts.forEach(post => createPage({
    path: `/blog/${post.slug}`,
    component: blogTemplates.Article,
    context : {
        post : post,
    }
})

此外,如果您选中repository provided in the tutorial you mentioned,则可以找到完整的配置。