반응형
질문
@override
Widget build(BuildContext context) {
widget.groupid;
widget.event_id;
var futureBuilder = new FutureBuilder(
future: _getAllTickets(),
builder: (BuildContext context, AsyncSnapshot snapshot) {
print(snapshot.connectionState);
switch (snapshot.connectionState) {
case ConnectionState.none:
case ConnectionState.waiting:
return new Text('...');
default:
if (snapshot.hasError)
return new Text('오류: ${snapshot.error}');
else
return createListTickets(context, snapshot);
}
},
);
return new Scaffold(
body: futureBuilder,
);
}
Widget createListTickets(BuildContext context, AsyncSnapshot snapshot) {
List values = snapshot.data;
child: new Card(
child:
new Column(mainAxisSize: MainAxisSize.min, children: <Widget>[
new Text(
values[index]["티켓_유형_아이디"].toString(), style:
const TextStyle(
fontFamily: 'Poppins',
fontWeight: FontWeight.w600,
fontSize: 25.0)),
}
_getAllTickets() async {
final response = await http.get(
"https...}"
, headers: {
HttpHeaders.AUTHORIZATION: access_token
});
returnTickets = json.decode(response.body);
return returnTickets;
}
_getTicketType() async {
for (i = 0; i < (returnTickets?.length ?? 0); i++) {
/*print("https....);*/
final responseType = await http.get(
"https...}"
, headers: {
HttpHeaders.AUTHORIZATION: access_token
});
Map<String, dynamic> hey = json.decode(responseType.body);
}
안녕하세요 여러분, 질문이 있습니다. 여러 개의 API 요청을 보내고 반환된 응답을 사용하여 동적으로 카드를 생성하려고하는데, _getAllTickets()에 여러 개의 메소드를 포함할 수 있을까요? 또한 values[index]["ticket_type_id"]를 values[index]["name"]으로 대체하고 싶은데, name은 _getTicketType() 메소드를 통해 얻은 새로운 인덱스 응답입니다. 미리 감사드립니다!
답변
다음과 같은 HTML을 한국어로 번역하되, HTML 태그와 태그를 사용하여 영어 텍스트를 보존합니다.
Future.wait(Future[])
를 사용하여 future 목록을 반환할 수 있습니다.Future<String> foo; Future<int> bar; FutureBuilder( future: Future.wait([bar, foo]), builder: (context, AsyncSnapshot<List<dynamic>> snapshot) { snapshot.data[0]; //bar snapshot.data[1]; //foo }, );
반응형
댓글