我希望禁用缓存或将缓存限制为24小时。我的ApolloClient只在服务器端运行。
我的环境:
现在,我就是这样配置我的ApolloClient的。
new ApolloClient({
ssrMode: true,
cache: new InMemoryCache(),
link: WithApollo.BatchLink(),
credentials: 'same-origin',
});FetchOptions ...但是,它并没有指定我实际上可以传递哪些选项来满足禁用或限制缓存的需要。
发布于 2019-07-28 12:28:37
阿波罗助推是不可能的。您需要迁移到迁移到使用阿波罗客户端。这将允许将defaultOptions选项作为在文档中显示提供给您的ApolloClient构造函数。
const defaultOptions = {
watchQuery: {
fetchPolicy: 'no-cache',
},
query: {
fetchPolicy: 'no-cache',
},
}fetchPolicy选项实际上可以在每个单独的query调用或Query组件上设置--通过提供defaultOptions对象,您不必将no-cache指定为您使用的每个Query组件的获取策略。这也意味着,如果你一心想保持助推,你可以在你的每个组件上这样做。但是,上面提到的是如何有效地“关闭”整个客户端的缓存。
发布于 2019-12-26 10:06:11
也许有人想知道如何准确地禁用apollo-boost ApolloClient的缓存,所以让我们来谈谈它。
@Daniel说,事实是,当我们直接执行new ApolloClient of apollo-boost时,我们不能禁用缓存,但是我们可以在发送请求时设置fetchPolicy。守则如下:
// 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的有效值,您可以从那里中找到。
https://stackoverflow.com/questions/57239371
复制相似问题