首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从阿波罗-boost导出的ApolloClient中禁用缓存

从阿波罗-boost导出的ApolloClient中禁用缓存
EN

Stack Overflow用户
提问于 2019-07-28 09:00:55
回答 2查看 4.7K关注 0票数 4

我希望禁用缓存或将缓存限制为24小时。我的ApolloClient只在服务器端运行。

我的环境:

  • 阿波罗-助推0.4.3
  • graphql 14.1.1
  • 阿波罗-链接-批-http- 1.2.12

现在,我就是这样配置我的ApolloClient的。

代码语言:javascript
复制
new ApolloClient({
      ssrMode: true,
      cache: new InMemoryCache(),
      link: WithApollo.BatchLink(),
      credentials: 'same-origin',
    });

FetchOptions ...但是,它并没有指定我实际上可以传递哪些选项来满足禁用或限制缓存的需要。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-07-28 12:28:37

阿波罗助推是不可能的。您需要迁移到迁移到使用阿波罗客户端。这将允许将defaultOptions选项作为在文档中显示提供给您的ApolloClient构造函数。

代码语言:javascript
复制
const defaultOptions = {
  watchQuery: {
    fetchPolicy: 'no-cache',
  },
  query: {
    fetchPolicy: 'no-cache',
  },
}

fetchPolicy选项实际上可以在每个单独的query调用或Query组件上设置--通过提供defaultOptions对象,您不必将no-cache指定为您使用的每个Query组件的获取策略。这也意味着,如果你一心想保持助推,你可以在你的每个组件上这样做。但是,上面提到的是如何有效地“关闭”整个客户端的缓存。

票数 7
EN

Stack Overflow用户

发布于 2019-12-26 10:06:11

也许有人想知道如何准确地禁用apollo-boost ApolloClient的缓存,所以让我们来谈谈它。

@Daniel说,事实是,当我们直接执行new ApolloClient of apollo-boost时,我们不能禁用缓存,但是我们可以在发送请求时设置fetchPolicy。守则如下:

代码语言:javascript
复制
  // create client first
  import ApolloClient from "apollo-boost";
  const client = new ApolloClient({ uri: GRAPHQL_URL })

  // Set the fetchPolicy when we send request
  import { gql } from 'apollo-boost';
  client.query({
    query: gql`
      query someInfo($id: ID!) {
        info(id: $id) {
          id
          name
        }
      }`,
    variables:{id: '123'},
    fetchPolicy: 'no-cache'
  })

fetchPolicy的有效值,您可以从那里中找到。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57239371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档