将嵌套对象写入本地 Apollo 缓存
Writing nested object to local Apollo cache
我已经看过了:
而且我猜在互联网上的其他地方。
所以我想做的是写一个对象到Apollo缓存,存储在本地。这是我的设置:
const cache = new InMemoryCache()
const client = new ApolloClient({
uri: '/hasura/v1/graphql',
cache,
credentials: 'include',
})
然后我写这个初始化缓存,取自:https://www.apollographql.com/docs/react/data/local-state/#querying-local-state
cache.writeData({
data: {
todos: [],
visibilityFilter: 'SHOW_ALL',
networkStatus: {
__typename: 'NetworkStatus',
id: 1,
isConnected: false,
},
},
})
现在,当我想使用此查询查询缓存时:
const lolquery = gql`{
visibilityFilter @client
}`
const result = cache.readQuery({ query: lolquery })
console.log(result)
我可以获得 visibilityFilter 和待办事项,但是当我尝试查询 networkStatus 时,即
const lolquery = gql`{
networkStatus @client
}`
我收到以下错误:
Uncaught Invariant Violation: Invariant Violation: 10
用谷歌搜索这个错误并没有给我太多答案。
我是唯一遇到这种情况的人吗?我错过了一些很明显的东西吗?
networkStatus
被初始化为一个对象,因此您必须使用一个或多个字段的子选择来查询它。
{
networkStatus @client {
isConnected
}
}
我已经看过了:
而且我猜在互联网上的其他地方。
所以我想做的是写一个对象到Apollo缓存,存储在本地。这是我的设置:
const cache = new InMemoryCache()
const client = new ApolloClient({
uri: '/hasura/v1/graphql',
cache,
credentials: 'include',
})
然后我写这个初始化缓存,取自:https://www.apollographql.com/docs/react/data/local-state/#querying-local-state
cache.writeData({
data: {
todos: [],
visibilityFilter: 'SHOW_ALL',
networkStatus: {
__typename: 'NetworkStatus',
id: 1,
isConnected: false,
},
},
})
现在,当我想使用此查询查询缓存时:
const lolquery = gql`{
visibilityFilter @client
}`
const result = cache.readQuery({ query: lolquery })
console.log(result)
我可以获得 visibilityFilter 和待办事项,但是当我尝试查询 networkStatus 时,即
const lolquery = gql`{
networkStatus @client
}`
我收到以下错误:
Uncaught Invariant Violation: Invariant Violation: 10
用谷歌搜索这个错误并没有给我太多答案。
我是唯一遇到这种情况的人吗?我错过了一些很明显的东西吗?
networkStatus
被初始化为一个对象,因此您必须使用一个或多个字段的子选择来查询它。
{
networkStatus @client {
isConnected
}
}