如何在旧版IOS /旧版浏览器上使用Graphql Vue Apollo?

时间:2019-04-23 07:47:27

标签: javascript vue.js vuejs2 graphql vue-apollo

我只是意识到并注意到我的vue应用在某些较旧的浏览器(例如ios 9)上无法正常运行。我使用vue-apollo使用django graphene从graphql api获取数据,但是当我调试它时,它不会在第一次加载时被调用。

以前,我会收到类似“全局未找到抓取”的错误,但是后来我已经通过在ApolloClient配置中添加“取消抓取”来解决此问题。但是我仍然看不到xhr网络上的api被调用。我没有尝试过同构提取

这是我的阿波罗客户端配置代码:

// src/utils/graphql.js
import { ApolloClient } from 'apollo-client';
import { HttpLink } from 'apollo-link-http';
import { InMemoryCache } from 'apollo-cache-inmemory';
import fetch from 'unfetch'

export default new ApolloClient({
  // Provide the URL to the API server.
  link: new HttpLink({ uri: '/api/', fetch: fetch }),
  // Using a cache for blazingly
  // fast subsequent queries.
  cache: new InMemoryCache(),
  connectToDevTools: true
});

我在main.js中这样指定它


import apolloClient from '../utils/graphql'
import VueApollo from 'vue-apollo'

Vue.use(VueApollo);

Vue.config.silent = true

const apolloProvider = new VueApollo({
  defaultClient: apolloClient,
  defaultOptions: {
    $loadingKey: "loading"
  }
})

这是我在main.js以及智能查询中使用的阿波罗示例:

apollo: {
  currentUser: {
    query: GET_LOGGED_USER,
    skipQuery() {
      return this.skipUser
    }
  }
}

我如何使它在ios 9 /任何旧版浏览器上工作?

1 个答案:

答案 0 :(得分:0)

好吧,在调试了两天之后,我终于找到了问题所在。因此,事实证明,我还需要添加并配置babel/polyfill才能使其正常运行,并将其添加到我的应用的入口点。

希望每个有相同问题的人都能从我的错误中学习大声笑