Я использую apollo-client для вызовов graphql вместе с добавлением управления состоянием в пакете apollo-client. В модуле graphql назначается InMemoryCache для переменной кеширования, а переменная клиента экспортируется. Переменная клиента импортируется в компонент, поэтому данные доступны в client.cache.data после выполнения вызова get по умолчанию, но я хочу обновить кеш клиента после успешного сохранения и удаления операций graphql обратные вызовы
Вот мой graphql.module.ts:
import {NgModule} from '@angular/core';
import {ApolloModule, APOLLO_OPTIONS} from 'apollo-angular';
import { ApolloClient } from 'apollo-client';
import {InMemoryCache} from 'apollo-cache-inmemory';
import { HttpLink } from 'apollo-link-http';
const cache = new InMemoryCache();
const link = new HttpLink({
uri:'https://api.graph.cool/simple/v1/ciyz901en4j590185wkmexyex'
});
export var client = new ApolloClient({
cache,
link
});
@NgModule({
})
и моя реализация вызова службы
client
.query({
query: gql`
{
fORoomTypes()
{
nodes
{
roomTypeId
roomType
ratSingle
ratDouble
ratExtra
statu
}
}
}
`,
})
.then(result => {
callback(result);
});
после обратного вызова client.cache.data содержит данные, я хочу вызывать эти данные с помощью запросов кеша, и я хочу автоматически обновлять кеш, это моя реализация службы сохранения
const post = gql`
mutation
{
saveRtype(rt:
{
rty:
{
rt:"Club room"
rat:4000
cchub:4500
ext:800
statu:1
}
traCheck:1
}
)
}
`
client.mutate({
mutation: post
}).then((data) => {
callback(data)
});