【发布时间】:2020-05-22 06:44:55
【问题描述】:
我正在使用 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()
},
没有运气。
为什么我在离开页面时会收到此错误?
为了提供更多上下文,我还在 layout.vue 中对数据库中的所有多重签名运行查询:
multisigs: {
query: gql`query {
multisigs {
_id
name
address {
_id
balance
}
},
}`,
所以我必须在不同地方查询对同一实体的订阅。当我转到 multigs/_id.vue 时,查询没有执行,所以除非我执行,否则我看不到任何订阅通知:
mounted() {
this.$apollo.queries.multisig.refetch()
},
我感觉 apollo 将两个查询合并为一个,因为它们是关于同一个实体 multisg 的查询。 这非常令人困惑和烦人。
谢谢。
【问题讨论】: