【发布时间】:2020-12-03 17:04:12
【问题描述】:
我将 nuxt.js 与 apollo 一起使用。所以基本上我有一个按钮,当你按下按钮时,它会向 graphql 服务器发出请求。我第一次按下按钮时它工作得很好。但第二次它返回相同的数据。即使它第二次从未联系过服务器。我认为这与阿波罗错误地缓存数据有关。但我不知道如何解决它。有人知道如何解决这个问题吗?
【问题讨论】:
标签: javascript vue.js graphql nuxt.js apollo
我将 nuxt.js 与 apollo 一起使用。所以基本上我有一个按钮,当你按下按钮时,它会向 graphql 服务器发出请求。我第一次按下按钮时它工作得很好。但第二次它返回相同的数据。即使它第二次从未联系过服务器。我认为这与阿波罗错误地缓存数据有关。但我不知道如何解决它。有人知道如何解决这个问题吗?
【问题讨论】:
标签: javascript vue.js graphql nuxt.js apollo
要禁用缓存,您可以全局或针对特定查询执行此操作。
全球:
new ApolloClient({
cache,
link,
defaultOptions: {
fetchPolicy: 'no-cache'
}
})
对于特定查询:
apollo: {
foo: {
query: ...,
fetchPolicy: 'no-cache'
}
}
【讨论】:
也可能是返回相同数据的 apollo 服务器设置。 请检查服务器端是否启用了任何缓存。
cacheControl: { defaultMaxAge: 5 },
defaultMaxAge 应该设置为 0 或者 cacheControl 根本不应该存在。
【讨论】: