Flutter - GraphQL 支持

Posted

技术标签:

【中文标题】Flutter - GraphQL 支持【英文标题】:Flutter - GraphQL Support 【发布时间】:2020-03-16 05:31:28 【问题描述】:

有人可以帮助我们解决以下问题

    Google 有计划在不久的将来支持官方的 graphQL 客户端吗?如果没有 apollo graphQl clinet 的机会?因为我没有看到任何官方支持 Flutter - GraphQL 集成。 n.

【问题讨论】:

【参考方案1】:

你可以使用包https://pub.dev/packages/graphql_flutter Flutter 的 GraphQL 客户端,将现代 GraphQL 客户端的所有功能集成到一个易于使用的包中。 Github https://github.com/zino-app/graphql-flutter 有两个例子你可以查看https://github.com/zino-app/graphql-flutter/tree/master/examples

查询代码sn-p

String readRepositories = """
  query ReadRepositories(\$nRepositories: Int!) 
    viewer 
      repositories(last: \$nRepositories) 
        nodes 
          id
          name
          viewerHasStarred
        
      
    
  
""";

Query(
  options: QueryOptions(
    document: readRepositories, // this is the query string you just created
    variables: 
      'nRepositories': 50,
    ,
    pollInterval: 10,
  ),
  // Just like in apollo refetch() could be used to manually trigger a refetch
  // while fetchMore() can be used for pagination purpose
  builder: (QueryResult result,  VoidCallback refetch, FetchMore fetchMore ) 
    if (result.errors != null) 
      return Text(result.errors.toString());
    

    if (result.loading) 
      return Text('Loading');
    

    // it can be either Map or List
    List repositories = result.data['viewer']['repositories']['nodes'];

    return ListView.builder(
      itemCount: repositories.length,
      itemBuilder: (context, index) 
        final repository = repositories[index];

        return Text(repository['name']);
    );
  ,
);

【讨论】:

嗨 chunhunghan,感谢您的回复,但我还有一个查询,在当前版本的 graphql_flutter 中,他们删除了文档:readRepositories,并添加了 documentnode:readRepositories,并且发现它很难与供应商。 你也可以给我指出一个使用提供程序包的好的实现。提前致谢。 我没有 graphql 服务器。帮不上忙。

以上是关于Flutter - GraphQL 支持的主要内容,如果未能解决你的问题,请参考以下文章

flutte学习-编译模式

flutte学习-编译模式

Google官宣:Flutter全平台称霸

webview_flutter插件如何支持文件上传?

webview_flutter插件如何支持文件上传?

flutte的第一个hello world程序