进行以下查询:
query Foo {
foo {
id
bar(id: 1) {
id
baz
}
}
}
query Bar {
bar(id: 1) {
id
baz
}
}
有时,运行第二个查询会为我提供bar
的缓存版本。在其他时候,它不是,但是我不确定这是因为查询多次运行,还是因为这是React中Apollo客户端的默认行为。
答案 0 :(得分:0)
不,不是(至少到2019年11月为止)。要在运行bar
查询时将Foo
对象放入缓存中,您需要创建如下的内存中缓存:
import { InMemoryCache } from 'apollo-cache-inmemory';
const cache = new InMemoryCache({
cacheRedirects: {
Query: {
bar: (_, args, { getCacheKey }) =>
getCacheKey({ __typename: 'Bar', id: args.id })
},
},
});
另请参阅: