在 Apollo Nuxt 中,如何在方法中访问非默认客户端?
Posted
技术标签:
【中文标题】在 Apollo Nuxt 中,如何在方法中访问非默认客户端?【英文标题】:In Apollo Nuxt, how do I access the non-default client in a method? 【发布时间】:2019-12-16 14:34:17 【问题描述】:我在 Nuxt 应用程序中使用 Apollo。我正在尝试在一种方法中使用我的非默认客户端(Shopify)。理想情况下是这样的:
在我的nuxt.config.js
中,我有这样的 Apollo 设置:
apollo:
clientConfigs:
default:
httpEndpoint:
"http://example.com",
tokenName: "apollo-token",
persisting: false,
websocketsOnly: false
,
shopify:
httpEndpoint:
"http://example.shopify.com",
tokenName: "apollo-token"
... etc...
然后在我的组件中,我有这个方法:
methods:
createCheckout()
this.$apollo.getClient("shopify")
.mutate(
mutation: this.checkoutQuery,
variables:
variantId: this.selectedProduct.variantId,
quantity: this.selectedProduct.quantity
)
这不起作用,因为getClient()
只返回默认客户端(在本例中为 WordPress)。那么如何在方法中访问其他客户端呢?
【问题讨论】:
【参考方案1】:想通了!答案是这样的:
methods:
createCheckout()
this.$apollo.provider.clients.shopify
.mutate(
mutation: this.checkoutQuery,
variables:
variantId: this.selectedProduct.variantId,
quantity: this.selectedProduct.quantity
)
【讨论】:
以上是关于在 Apollo Nuxt 中,如何在方法中访问非默认客户端?的主要内容,如果未能解决你的问题,请参考以下文章
在 NUXT 中使用 vue-apollo 从 Vuex 商店访问 this.$apollo?
@Nuxt/Apollo 如何从 gql 查询中删除“__typeName”
如何以与@nuxt/apollo subscribeToMore 一起使用的方式设置我的 nuxt
“默认 Apollo 查询”VS “AsyncData”(Nuxt.js)