首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >阿波罗客户端:在清除或重置存储区时保持/重置默认设置

阿波罗客户端:在清除或重置存储区时保持/重置默认设置
EN

Stack Overflow用户
提问于 2018-11-14 16:17:45
回答 2查看 749关注 0票数 0

我使用apollo-link-state在本地存储错误,但在清除缓存后得到以下错误。

我已经在阿波罗客户端配置选项中将errors的默认值设置为空数组[]

但是,在apolloClient.cache.reset()apolloClient.store.reset()之后,我似乎丢失了所有默认值,从而导致了以下错误:

有什么办法解决这个问题吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-11-14 16:47:26

来自文档

有时,您可能需要重置应用程序中的存储,例如当用户注销时。如果您在应用程序中的任何地方调用client.resetStore,您将需要再次将缺省值写入存储区。阿波罗链接状态为您公开一个writeDefaults函数.要将您的回调注册到阿波罗客户端,请调用client.onResetStore并传入writeDefaults。

所以你可以做这样的事情:

代码语言:javascript
复制
const cache = new InMemoryCache()
const link = withClientState({ cache, resolvers, defaults })

const client = new ApolloClient({
  cache,
  link,
})

client.onResetStore(stateLink.writeDefaults)
票数 1
EN

Stack Overflow用户

发布于 2019-08-06 02:06:56

有了阿波罗2.x,你可以做以下几件事:

代码语言:javascript
复制
cache.writeData({data : defaultData });

client.onResetStore(() => {
  cache.writeData({data : defaultData });
});

假设在此代码之上设置了缓存的默认数据。

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

https://stackoverflow.com/questions/53304560

复制
相关文章

相似问题

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