我在一个next.js应用程序中使用Apollo Client实验性的getClient。
export const { getClient } = registerApolloClient(
() =>
new ApolloClient({
cache: new InMemoryCache(),
link: new HttpLink({
uri: `${apiBaseUrl}/graphql`,
}),
}),
);
字符串
我用它来处理我的登录变量,如下所示:
const { data } = await getClient().mutate({
mutation: LOGIN_MUTATION,
variables: {
email,
password,
},
fetchPolicy: "network-only",
});
型
不幸的是,fetchPolicy
属性似乎不起作用:我的服务器返回的令牌总是相同的,因此无法登录。
到目前为止,我找到的唯一解决方法是更新我的客户端声明,包括以下内容:
fetchOptions: { cache: "no-store" },
型
但很明显,我想缓存一些查询的结果。
1条答案
按热度按时间guicsvcw1#
服务器缓存似乎不考虑
fetchPolicy
选项。相反,您需要使用以下选项:字符串
这确保了数据总是被重新验证。