0

apollo-link-state用于本地存储错误,但清除缓存后出现以下错误。

我在 apollo 客户端配置选项中将默认值设置errors为空数组。[]

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

错误

任何想法如何解决这个问题?

4

2 回答 2

1

文档

有时您可能需要在应用程序中重置存储,例如当用户注销时。如果您在应用程序的任何位置调用 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)
于 2018-11-14T16:47:26.963 回答
0

使用 Apollo 2.x,您可以执行以下操作:

cache.writeData({data : defaultData });

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

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

于 2019-08-06T02:06:56.140 回答