首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GrapghQl Flutter软件包中的缓存设置以及如何检查其工作情况

GrapghQl Flutter软件包中的缓存设置以及如何检查其工作情况
EN

Stack Overflow用户
提问于 2019-12-30 13:17:13
回答 1查看 1.9K关注 0票数 1

我正在尝试在我的应用程序中实现graphQl Flutter包。

https://github.com/zino-app/graphql-flutter

一切都很好,但我对缓存有一些问题。

如果我们运行这个包https://github.com/zino-app/graphql-flutter/tree/master/packages/graphql_flutter/example中的示例,我们可以看到缓存不工作。

在我的应用中,我也不能提高速度,它总是在线获取数据。

此示例中的代码

代码语言:javascript
复制
class GraphQLWidgetScreen extends StatelessWidget {
  const GraphQLWidgetScreen() : super();

  @override
  Widget build(BuildContext context) {
    final HttpLink httpLink = HttpLink(
      uri: 'https://api.github.com/graphql',
    );

    final AuthLink authLink = AuthLink(
      // ignore: undefined_identifier
      getToken: () async => 'Bearer $YOUR_TOKEN',
    );

    Link link = authLink.concat(httpLink);
    if (ENABLE_WEBSOCKETS) {
      final WebSocketLink websocketLink = WebSocketLink(
        url: 'ws://localhost:8080/ws/graphql',
        config: SocketClientConfig(
            autoReconnect: true, inactivityTimeout: Duration(seconds: 15)),
      );

      link = link.concat(websocketLink);
    }

    final ValueNotifier<GraphQLClient> client = ValueNotifier<GraphQLClient>(
      GraphQLClient(
        cache: OptimisticCache(
          dataIdFromObject: typenameDataIdFromObject,
        ),
        link: link,
      ),
    );

    return GraphQLProvider(
      client: client,
      child: const CacheProvider(
        child: MyHomePage(title: 'GraphQL Widget'),
      ),
    );
  }
}

显示缓存不工作的动画

因此,问题是-实现缓存的正确方式是什么,检查它是如何工作的。

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2020-02-15 01:09:55

这些示例是独立的-因此,它们使用单独的客户端和缓存。这样做的结果是它是re-instantiated every mount。换句话说,每次导航到示例的路由时,都会获得一个新的缓存,因此看不到缓存效果。有关可以查看缓存是否正常工作的更多示例,请参见the starwars example (related github discussion)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59526017

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档