Ошибка Nuxt Apollo GraphQL: переменная требуемого типа не была предоставлена

Я использую Nuxt.js с Apollo и пытаюсь получить доступ к GraphQL из WordPress. Мне удается получить данные, поэтому я знаю, что это работает.

Я пытаюсь отобразить сообщение в зависимости от его URI в файле _slug.vue.

pages/
--| _slug/
--| index.vue

Проблема в том, что я пытаюсь передать переменную в запрос. Я получаю следующую ошибку GraphQL error: Variable "$uri" of required type "ID!" was not provided. (я знаю, что на странице / URI, к которым я обращаюсь, есть сообщение / данные).

<template>
  <article>
    {{ post }}
  </article>
</template>

<script>
import fetchPost from '~/apollo/fetchPost.gql'

export default {
  apollo: {
    post: {
      query: fetchPost,
      varibles() {
        return {
          uri: this.$route.path,
        }
      },
    },
  },
}
</script>

Хотя файл fetchPost.gql выглядит так (я также пробовал встраивать запрос, но это не имеет значения).

query queryPost($uri: ID!) {
  post(id: $uri, idType: URI, asPreview: false) {
    categories {
      nodes {
        name
        uri
      }
    }
    content(format: RENDERED)
    date
    excerpt(format: RENDERED)
    featuredImage {
      node {
        altText
        caption(format: RENDERED)
        sourceUrl(size: LARGE)
        mediaItemUrl
      }
    }
    id
    modified
    postId
    slug
    title(format: RENDERED)
    uri
  }
}

nuxt.config.js выглядит так.

apollo: {
    clientConfigs: {
      default: {
        httpEndpoint: process.env.WPGRAPHQL_ENDPOINT,
      }
    }
  },

  router: {
    extendRoutes (routes, resolve) {
      routes.push({
        name: 'custom',
        path: '/:slug*',
        component: '~/pages/_slug.vue'
      })
    }
  },

Кто-нибудь знает, почему я получаю ошибку и как ее исправить?


person Niklas    schedule 24.04.2021    source источник


Ответы (1)


Я написал variables неверно. Итак, работает следующее.

 variables() {
    return {
      uri: this.$route.path,
    }
person Niklas    schedule 24.04.2021