我apollo-link-state
用于本地存储错误,但清除缓存后出现以下错误。
我在 apollo 客户端配置选项中将默认值设置errors
为空数组。[]
但是,在apolloClient.cache.reset()
or之后apolloClient.store.reset()
,我似乎丢失了所有默认值,导致此错误:
任何想法如何解决这个问题?
我apollo-link-state
用于本地存储错误,但清除缓存后出现以下错误。
我在 apollo 客户端配置选项中将默认值设置errors
为空数组。[]
但是,在apolloClient.cache.reset()
or之后apolloClient.store.reset()
,我似乎丢失了所有默认值,导致此错误:
任何想法如何解决这个问题?
从文档:
有时您可能需要在应用程序中重置存储,例如当用户注销时。如果您在应用程序的任何位置调用 client.resetStore,您将需要再次将默认值写入存储。apollo-link-state 为您公开了一个 writeDefaults 函数。要将回调注册到 Apollo 客户端,请调用 client.onResetStore 并传入 writeDefaults。
因此,您可以执行以下操作:
const cache = new InMemoryCache()
const link = withClientState({ cache, resolvers, defaults })
const client = new ApolloClient({
cache,
link,
})
client.onResetStore(stateLink.writeDefaults)
使用 Apollo 2.x,您可以执行以下操作:
cache.writeData({data : defaultData });
client.onResetStore(() => {
cache.writeData({data : defaultData });
});
假设您在此代码上方设置了缓存的默认数据。