Vue.js 离开页面时,我得到:未处理的GraphQL订阅错误:GraphQL错误:未提供所需类型xxx的变量xx
我正在与vue apollo graphql一起开发 在页面multisgs/_id.vue中,我有一个查询,其中有几个“subscribeToMore”,每个“subscribeToMore”都有一个不同的变量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
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
},
即使我不明白为什么在离开页面时查询是活动的,它仍然可以工作