Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vue.js 离开页面时,我得到:未处理的GraphQL订阅错误:GraphQL错误:未提供所需类型xxx的变量xx_Vue.js_Graphql_Apollo - Fatal编程技术网

Vue.js 离开页面时,我得到:未处理的GraphQL订阅错误:GraphQL错误:未提供所需类型xxx的变量xx

Vue.js 离开页面时,我得到:未处理的GraphQL订阅错误:GraphQL错误:未提供所需类型xxx的变量xx,vue.js,graphql,apollo,Vue.js,Graphql,Apollo,我正在与vue apollo graphql一起开发 在页面multisgs/_id.vue中,我有一个查询,其中有几个“subscribeToMore”,每个“subscribeToMore”都有一个不同的变量 variables() { return { multisigId: this.$route.params.id, } }, 当我离开页面时,我得到: Unhandled GraphQL subscripti

我正在与vue apollo graphql一起开发

在页面multisgs/_id.vue中,我有一个查询,其中有几个“subscribeToMore”,每个“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()
  },
没有运气

为什么我在离开页面时会出现此错误

为了提供更多上下文,我还在layout.vue中运行对数据库中所有MultiSig的查询:

    multisigs: {
  query: gql`query {
    multisigs {
      _id
      name
      address {
        _id
        balance
      }
    },
  }`,
因此,我必须在不同的地方使用对同一实体的订阅进行查询。当我转到multigs/_id.vue时,查询不会执行,因此我无法看到任何订阅通知,除非我执行:

  mounted() {
    this.$apollo.queries.multisig.refetch()
  },
我感觉apollo将两个查询合并为一个查询,因为它们是关于同一个实体multisg的查询。 这是非常令人困惑和恼火的

谢谢。

我通过添加以下内容解决了此问题:

  skip () {
    return !this.$route.params || !this.$route.params.id
  },
即使我不明白为什么离开页面时查询处于活动状态,它仍然可以工作。

我通过添加以下内容解决了此问题:

  skip () {
    return !this.$route.params || !this.$route.params.id
  },
即使我不明白为什么在离开页面时查询是活动的,它仍然可以工作