При выходе из страницы я получаю: Необработанная ошибка подписки GraphQL Ошибка: Ошибка GraphQL: переменная xx требуемого типа xxx не была предоставлена - PullRequest
1 голос
/ 06 февраля 2020

Я занимаюсь разработкой с vue -apollo graphql.

На странице multisgs / _id. vue У меня есть запрос с несколькими «subscribeToMore», каждый с различной переменной.

      variables() {
        return {
          multisigId: this.$route.params.id,
        }
      },

Когда я покидаю страницу, я получаю:

Unhandled GraphQL subscription error Error: GraphQL error: Variable "$multisigId" of required type "ID!" was not provided. 

Я пытался:

  beforeDestroy() {
    this.$apollo.queries.multisig.skip = true
    this.$apollo.queries.multisig.stop()
  },

Без удачи.

Почему я получаю эту ошибку, когда покидать страницу?

Чтобы получить больше контекста, в макете. vue Я также выполняю запрос ко всем мультисигналам в базе данных:

    multisigs: {
  query: gql`query {
    multisigs {
      _id
      name
      address {
        _id
        balance
      }
    },
  }`,

Так что мне нужно выполнить запросы с подписками на одну и ту же сущность в разных местах. Когда я go в multigs / _id. vue, запрос не выполняется, поэтому я не вижу уведомлений о подписках, пока не выполню:

  mounted() {
    this.$apollo.queries.multisig.refetch()
  },

У меня такое ощущение, что apollo объединяет оба запроса в один, поскольку они являются запросами об одном и том же объекте multisg. Это очень смущает и раздражает.

Спасибо.

1 Ответ

0 голосов
/ 29 февраля 2020

Я решил это, добавив:

  skip () {
    return !this.$route.params || !this.$route.params.id
  },

Это работает, хотя я не понимаю, почему запрос активен, когда покидает страницу.

...