首页 > 解决方案 > 如何从飞镖文件中调用graphQl“查询”

问题描述

我正在尝试使用 graphQL 调用网络调用(GraphQL - Query),我需要知道实现这一目标的确切方法。

标签: flutterdartgraphqlmutation

解决方案


请使用这个包https://pub.dev/packages/graphql_flutter

例如 https://pub.dev/packages/graphql_flutter#queries

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
  builder: (QueryResult result, { VoidCallback refetch }) {
    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']);
    });
  },
);

您也可以直接测试示例 https://github.com/zino-app/graphql-flutter/tree/master/examples/starwars


推荐阅读