Зловещая контекстная переменная не передана на страницу-запрос
Я не могу получить доступ к 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>
К сожалению, я получаю следующую ошибку: `Переменная"$primaryTag"не нулевого типа"String!" не должно быть нулевым.
Кроме того, в качестве примечания (и это может быть проблема с ошибкой) я использую @gridsome/source-filesystem
а также @gridsome/transformer-remark
создать мой Post
коллекция.
Если вы знаете, как решить эту проблему или лучше подходите к получению соответствующих постов, оставьте комментарий ниже.
Libs: - грязная версия: 0.6.3 - @gridsome/cli версия: 0.1.1`