如何解决Flutter graphql 使用带有 hive 的缓存,当使用警察 'cacheAndNetwork' 调用查询时,它总是使用没有缓存的网络
Flutter graphql 使用带有 hive 的缓存,当使用警察 'cacheAndNetwork' 调用查询时,它总是使用没有缓存的网络
这是我的代码
Future<QueryResult> query(String query,{Map<String,dynamic> variables}) async {
QueryOptions options = QueryOptions(
document: gql(query),variables: variables,fetchPolicy: FetchPolicy.cacheAndNetwork,errorPolicy: ErrorPolicy.none,cacheRereadPolicy: CacheRereadPolicy.mergeOptimistic,);
final result = await _client.query(options);
return result;
}
它总是从网络返回,实际上,它应该按照graphql文档中描述的方式工作“'cacheAndNetwork'首先从缓存返回结果(如果存在),然后在可用时返回网络结果。"
这是我的 GraphQL 客户端
GraphQLClient _client;
Client httpClient;
void initClient(session) {
if (_client != null) return;
final token = session.getAccesstoken().getJwtToken();
final HttpLink _httpLink = HttpLink(
'https://*************/graphql',defaultHeaders: {
'x-api-key': '************','Content-Type': '*************'
},httpClient: this.httpClient,);
final AuthLink _authLink = AuthLink(getToken: () => token);
final Link _link = _authLink.concat(_httpLink);
_client = GraphQLClient(
cache: GraphQLCache(
store: HiveStore(),),link: _link,);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。