我就此问题仅在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,
}
})
);
}
任何帮助都会很棒。对于这个错误,我真的在网上找不到任何东西。
答案 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,则可以找到完整的配置。