Зловещая контекстная переменная не передана на страницу-запрос - PullRequest
0 голосов
/ 06 июня 2019

Я не могу получить доступ к переменной 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`

...