Учитывая простую схему graphql, которая выглядит примерно так:
type Contact {
id: ID!
name: String
}
type Query {
RecentContacts: [Contact]
Contact(id: ID!): Contact
}
Если я запрашиваю Недавние контакты:
const GET_RECENT_CONTACTS = gql`
query RecentContacts {
RecentContacts {
id
name
}
}`
<Query client={client} query={GET_RECENT_CONTACTS}>
{({loading, error, data}) => { /* etc... */ }}
</Query>
И получаю данные, например, о контактах с идентификаторами 1 и 2, которыекэшируется как:
ROOT_QUERY
RecentContacts: [Contact]
0: Contact:1
id: 1
name: Jack
1: Contact:2
id: 2
name: Jill
Есть ли способ сообщить Аполлону, что он может использовать уже кэшированные записи для запросов Contact(id: 1)
и Contact(id: 2)
без необходимости делать другой сетевой запрос просто для возвратаданные, которые уже существуют в кэше?
В частности, я бы хотел, чтобы этот запрос не выполнял сетевой запрос после запроса RecentContacts
, поскольку необходимые ему данные уже находятся в кэше (хотявозвращается из вызова на другой запрос):
const GET_CONTACT = gql`
query Contact($id: ID!){
Contact(id: $id){
id
name
}
}
<Query client={client} query={GET_CONTACT} variables={{id: 1}}>
{({loading, error, data}) => {/* etc... */}}
</Query>