【发布时间】:2020-09-14 15:58:15
【问题描述】:
我正在使用 apollo-client 进行 graphql 调用,并在包 apollo-client 中添加了状态管理。在graphql模块中,将InMemoryCache分配给缓存变量并导出客户端变量。将客户端变量导入组件中,因此在执行默认get调用后数据在client.cache.data中可用,但我想在保存和删除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)
});
【问题讨论】:
标签: apollo-client