2

创建 Apollo 客户端后,有没有办法更改 Apollo 端点?我想让用户输入他们自己的端点。

4

2 回答 2

3

httpEndpoint可以是一个函数,每次查询都会调用它。

正如@wrod7 提到的,你可以使用localStorage,但全局变量应该足够了

// vue-apollo.js
export { defaultOptions }
// main.js
import { createProvider, defaultOptions } from './vue-apollo'
window.apolloEndpoint = defaultOptions.httpEndpoint
new Vue({
  router,
  apolloProvider: createProvider({
    cache,
    httpEndpoint: () => window.apolloEndpoint,
  }),
  render: h => h(App),
}).$mount('#app')

你可以设置apolloEndpoint任何你喜欢的地方,我window.用来让 eslint 开心

httpEndpoint 使用当前查询调用,因此您可以根据条件有条件地返回端点operationName

vue-apollo 支持多个客户端,如果您只想在某些查询上覆盖端点,它可能会很有用,但我认为这是题外话

于 2019-06-08T22:51:09.840 回答
1

我正在我的一个应用程序上执行此操作。我将 URL 字符串存储在移动设备上的 localstorage 或 asyncstorage 中。您可以在应用程序加载时检查字符串,如果没有存储 url 字符串,则让用户输入一个。输入 url 并将其保存到 localstorage 后,应用程序必须刷新。

于 2018-10-01T13:48:42.377 回答