【问题标题】:ApolloBoost was initialized with unsupported options:ApolloBoost 使用不受支持的选项进行初始化:
【发布时间】:2019-04-27 22:07:41
【问题描述】:

我正在尝试在 Apollo 上禁用缓存,因此我正在关注文档 apollo-client ,但我无法成功,我一直收到这个警告 ApolloBoost was initialized with unsupported options: defaultOptions

有人有同样的警告吗?

import Vue from 'vue'
import ApolloClient from 'apollo-boost'

    const defaultOptions = {
      watchQuery: {
        fetchPolicy: 'network-only',
        errorPolicy: 'ignore'
      },
      query: {
        fetchPolicy: 'network-only',
        errorPolicy: 'all'
      }
    }

    const client = new ApolloClient({

    defaultOptions: defaultOptions,
    )};

【问题讨论】:

  • 你是从 'apollo-client' 还是 'apollo-boost' 导入 ApolloClient 的?
  • @Intellidroid apollo-boost,已经更新了代码
  • 如果您需要添加更多配置选项,我相信您需要单独导入库,以便 ApolloClient 从 'apollo-client' 而不是 'apollo-boost'

标签: graphql apollo apollo-client apollo-server vue-apollo


【解决方案1】:

看起来是因为您使用的是 Apollo Boost,它是 Apollo 客户端的包装器,API 略有不同。

尝试更改您的导入来源:

import ApolloClient from "apollo-boost";

到:

import ApolloClient from "apollo-client";

或在 v3 中:

import { ApolloClient } from '@apollo/client';


“apollo-client”级别更低,更难使用。这可能就是团队创建“apollo-boost”的原因。

但是查看源代码“apollo-boost”是了解如何使用低级“apollo-client”的好方法。例如:

import ApolloClient from 'apollo-client';
import { FetchResult } from 'apollo-link';
import { HttpLink } from 'apollo-link-http';
import { InMemoryCache } from 'apollo-cache-inmemory';

// in v3, the types moved:
// import { ApolloClient } from '@apollo/client';

const apolloClient = new ApolloClient({
  link: new HttpLink({
    uri: '/graphql',
    credentials: 'same-origin',
  }),
  cache: new InMemoryCache(),
  defaultOptions: {
    query: {
      errorPolicy: 'all',
    },
  },
});

另请参阅 migration 上的文档,从 Apollo Boost 到 Apollo Client,就像 Intellidroid 所说的那样。

【讨论】:

    猜你喜欢
    • 2011-12-25
    • 1970-01-01
    • 2012-06-15
    • 2019-12-30
    • 2023-03-09
    • 2011-05-23
    • 2012-09-07
    • 2016-02-14
    • 1970-01-01
    相关资源
    最近更新 更多