如何使用reactjs @apollo/client v3获取所有缓存数据

cYe*_*Yee 6 react-apollo apollo-client

无论如何,我可以检查所有缓存,例如:apollo 内的更改以进行调试。像 redux store 这样的东西,你可以在其中查看整个状态树。

他们提到:

缓存按 ID 将对象存储在平面查找表中。 https://www.apollographql.com/docs/react/caching/cache-configuration/

有什么方法可以显示/控制台整个查找表吗?

cYe*_*Yee 13

对于@apollo/client v3

找到答案了,如果有人感兴趣的话。

  1. 通过InMemoryCache

您可以通过控制台记录使用 InMemoryCache 创建的缓存对象。您应该能够在创建的缓存下找到它:

const cache = new InMemoryCache({"...Your option"})
console.log(cache.data) // <- Your cache query
Run Code Online (Sandbox Code Playgroud)
  1. 通过browser console

通过浏览器,使用console登录data

__APOLLO_CLIENT__.cache.data
Run Code Online (Sandbox Code Playgroud)
  1. 通过apollov3

通过apollo客户端缓存访问

const client = useApolloClient();
const serializedState = client.cache.extract();
console.log(serializedState) <- your cache query
Run Code Online (Sandbox Code Playgroud)

  • “data”属性被设置为“InMemoryCache”类的私有属性,因此我们无法像答案中所示访问它。 (2认同)