Flutter 如何在Flatter中使用graphql从服务器获取数据?

Flutter 如何在Flatter中使用graphql从服务器获取数据?,flutter,dart,graphql,Flutter,Dart,Graphql,我正在尝试从服务器的数据中获取数据。我试着 列表并显示在屏幕上。但我不知道该怎么做。在里面 在body中,我还添加了graphql的查询 类提供扩展的无状态小部件{ @覆盖小部件构建(构建上下文){ **最终HttpLink HttpLink= HttpLink(uri:'link') final AuthLink AuthLink=AuthLink( getToken:()async=>Bearer'** //或 //getToken:()=>'持有者 ', );final Link=a

我正在尝试从服务器的数据中获取数据。我试着 列表并显示在屏幕上。但我不知道该怎么做。在里面 在body中,我还添加了graphql的查询

类提供扩展的无状态小部件{
@覆盖小部件构建(构建上下文){ **最终HttpLink HttpLink= HttpLink(uri:'link')

final AuthLink AuthLink=AuthLink(
getToken:()async=>Bearer'**
//或
//getToken:()=>'持有者
',   
);final Link=authLink.concat(httpLink作为
链接);
最终估价通知程序客户端=
ValueNotifier(GraphQLClient(
链接:链接,
缓存:InMemoryCache());
返回GraphQLProvider(
child:OfferList(),
客户:客户,,
);   } }
类扩展StatefulWidget{@override
_OfferListState createState()=>\U OfferListState();}
类_OfferListState扩展了状态{
@凌驾
小部件构建(构建上下文){
//TODO:实现构建
返回脚手架(
appBar:appBar(
标题:文本(“报价”),
背景颜色:Colors.indigoAccent,
),
正文:查询(
选项:查询选项(文档:“”
质疑(
献礼{
边缘{
节点{
身份证件
名称
地位
描述
结束时间
通货
}
}
}
}
"""),
建造商:(
查询结果{
重新蚀刻,
}) {
如果(result.data==null){
返回文本(“未找到数据”);
}
//返回文本(“成功”);
List OfferList=result.data['affOffers']
[“边”]
['node'];
打印(offerLists.length);
返回ListView.builder(
itemBuilder:(BuildContext上下文,int)
索引){
最终报价=报价列表[索引];
返回文本(报价['name']);
},
itemCount:OfferList.length,
);
}),
);   
}     }
            final AuthLink authLink = AuthLink(
            getToken: () async => 'Bearer <token>',**
            // OR
            // getToken: () => 'Bearer 
       <YOUR_PERSONAL_ACCESS_TOKEN>',   
           );   final Link link = authLink.concat(httpLink as 
           Link);
            final ValueNotifier<GraphQLClient> client =
                ValueNotifier<GraphQLClient>(GraphQLClient(
                    link: link,
                    cache: InMemoryCache()));
            return GraphQLProvider(
              child: OfferList(),
              client: client,
            );   } }

        class OfferList extends StatefulWidget {   @override   
     _OfferListState createState() => _OfferListState(); }

        class _OfferListState extends State<OfferList> {   
       @override   
       Widget build(BuildContext context) {
            // TODO: implement build
            return Scaffold(
              appBar: AppBar(
                title: Text("Offers"),
                backgroundColor: Colors.indigoAccent,
              ),
                 body: Query(
                  options: QueryOptions(document: """
                query(
                  affOffers{
                    edges {
                      node {
                        id  
                        name  
                        status  
                        description  
                        end_time  
                        currency  
                      }
                    }
                  }
                  }
                   """),
                    builder: (
                     QueryResult result, {
                      VoidCallback refetch,
                  }) {
                    if (result.data == null) {
                      return Text("No data found");
                    }
                    //return Text("Success");

                    List offerLists = result.data['affOffers'] 
  ['edges'] 
                ['node'];
                    print(offerLists.length);
                    return ListView.builder(

                      itemBuilder: (BuildContext context, int 
             index) {
                        final offer = offerLists[index];
                        return Text(offer['name']);
                      },
                      itemCount: offerLists.length,
                    );
                  }),
            );   
}     }