Graphql 使用gatsby和contentful的CreatePage API存在问题
我试图使用contentful中的数据生成单个团队成员的页面。使用内容数据创建页面是次要的,我主要关心的是gatsby-node.js文件无法使用/${node.slug}创建页面 这是gatsby-node.js文件Graphql 使用gatsby和contentful的CreatePage API存在问题,graphql,gatsby,contentful,Graphql,Gatsby,Contentful,我试图使用contentful中的数据生成单个团队成员的页面。使用内容数据创建页面是次要的,我主要关心的是gatsby-node.js文件无法使用/${node.slug}创建页面 这是gatsby-node.js文件 exports.createPages = async ({ graphql, actions, reporter }) => { const result = await graphql(` { allContentfulIndividualTe
exports.createPages = async ({ graphql, actions, reporter }) => {
const result = await graphql(`
{
allContentfulIndividualTeamMember {
nodes {
slug
}
}
}
`);
if (result.error) {
reporter.panic("error loading data", JSON.stringify(result.errors))
}
result.data.allContentfulIndividualTeamMember.nodes.forEach(node => {
actions.createPage({
path: `/${node.slug}`,
component: require.resolve("./src/Templates/individualTeamPage.js"),
context: {
slug: node.slug,
},
})
})
}
这是我的个人团队成员模板文件
import React from "react"
import { graphql } from "gatsby"
const IndividualTeamPage = ({ data }) => {
console.log("checking ")
return (
<div>
<h1>Checking</h1>
<p>{data.edges.node.nameOfTheEmployee} </p>
</div>
)
}
export default IndividualTeamPage
export const query = graphql(`
query($slug: String!) {
allContentfulIndividualTeamMember(filter: { slug: { eq: $slug } }) {
edges {
node {
positionInTheCompany
nameOfTheEmployee
}
}
}
}
`)
从“React”导入React
从“盖茨比”导入{graphql}
const IndividualTeamPage=({data})=>{
控制台日志(“检查”)
返回(
检查
{data.edges.node.nameofEmployee}
)
}
导出默认的IndividualTeamPage
export const query=graphql(`
查询($slug:String!){
allContentfulIndividualTeamMember(筛选器:{slug:{eq:$slug}}){
边缘{
节点{
公司职位
雇员姓名
}
}
}
}
`)
更新:
我认为问题是由于我将盖茨比中的pages文件夹更改为pages引起的,我更改为back to pages并删除和安装了node_模块。我仍然无法以编程方式创建页面,如果这有助于[成功运行页面查询-0.035s-3/3],每当我运行gatsby develop时,我都会在终端中得到这一信息您确定要使用该查询从Contentful检索值吗?我的猜测是:
const result = graphql(`
query {
allContentfulIndividualTeamMember {
edges {
node {
slug
}
}
}
}
`)
注意边
对象和节点
(而不是节点s)
因此,您的循环对象将是:
result.data.allContentfulIndividualTeamMember.edges.node.forEach()
您确定要使用该查询从Contentful检索值吗?我的猜测是:
const result = graphql(`
query {
allContentfulIndividualTeamMember {
edges {
node {
slug
}
}
}
}
`)
注意边
对象和节点
(而不是节点s)
因此,循环对象应该是:
result.data.allContentfulIndividualTeamMember.edges.node.forEach()
看起来像是graphql``而不是graphql(`
看起来像是graphql``而不是graphql(`
我不认为这是问题所在,我确信我的代码正在检索值,我现在注意到的是,最初我将盖茨比中的pages文件夹重命名为pages。文件系统无法找到pages one,我现在已将其更改为pages,它弄乱了本地节点模块,我将其删除并再次执行npm I,没有运气。我我将不得不在一个新的网站上重做这个项目的一部分,这个网站没有提供问题中的信息。你想编辑它并重新提问吗?当然,这就是问题所在。盖茨比的文件系统以一种特定的命名和路径方式工作。更改它需要在项目中进行大量的更改以保持最初的解决方法。我不认为我会这样做问题是,我确定我的代码正在检索值,我现在注意到的是,最初我将盖茨比中的pages文件夹重命名为pages。文件系统无法找到pages one,我现在已将其更改为pages one,它弄乱了本地节点模块,我将其删除,然后再次执行npm I,没有运气。我想我必须重做此页面问题中没有提供信息的新网络中项目的rt。是否要编辑它并重新请求?当然,这就是问题所在。盖茨比的文件系统以特定的命名和路径方式工作。更改它需要在项目中进行大量更改以保持初始解决方法。是的,它应该是graphqlQUERY
。请签出有关更多信息,请查看盖茨比文档。是的,它应该是graphqlQUERY
。有关更多信息,请查看盖茨比文档。请确保字段段塞返回某些信息。是否可以向我们显示终端输出错误或graphql游乐场错误?确保字段段塞返回某些信息。是否可以向我们显示终端输出错误或错误图形错误?