我无法访问primaryTag
GraphQL 中的变量page-query
。
我想要实现的是在博客帖子页面上:
- 显示帖子内容
- 显示相关帖子(基于第一个标签)
在我的gridsome.server.js
api.createPages(async ({ graphql, createPage }) => {
// Use the Pages API here: https://gridsome.org/docs/pages-api
const { data } = await graphql(`{
allPost {
edges {
node {
id
path
tags {
id
}
}
}
}
}`)
data.allPost.edges.forEach(({ node }) => {
createPage({
path: `${node.path}`,
component: './src/templates/Post.vue',
context: {
id: node.id,
path: node.path,
primaryTag: (node.tags[0] && node.tags[0].id) || '',
}
})
})
})
然后在我的Post.vue
<page-query>
query Post ($path: String!, $primaryTag: String!) {
post: post (path: $path) {
title
path
content
}
related: allPost(
filter: { tags: { contains: [$primaryTag] }, path: { ne: $path } }
) {
edges {
node {
id
title
path
}
}
}
}
</page-query>
不幸的是,我收到以下错误:`非空类型“String!”的变量“$primaryTag” 不能为空。
另外,作为旁注(这可能是错误问题),我正在使用@gridsome/source-filesystem
并@gridsome/transformer-remark
创建我的Post
收藏。
如果您知道如何解决此问题或有更好的方法来获取相关帖子,请在下面发表评论。
库:-gridsome 版本:0.6.3 -@gridsome/cli 版本:0.1.1`