Flutter 如何在Flatter中使用graphql从服务器获取数据?
我正在尝试从服务器的数据中获取数据。我试着 列表并显示在屏幕上。但我不知道该怎么做。在里面 在body中,我还添加了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
@覆盖小部件构建(构建上下文){ **最终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,
);
}),
);
} }