代码之家  ›  专栏  ›  技术社区  ›  heyr

我可以在将来的生成器上使用多种方法吗?

  •  3
  • heyr  · 技术社区  · 6 年前
         @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('Error: ${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]["ticket_type_id"].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(),+(另一个方法),因为我想用值[索引]替换值[索引][“ticket_type_id”][“name”],这是我通过方法gettickettype()获得的新索引响应。 提前谢谢你!

    1 回复  |  直到 6 年前
        1
  •  7
  •   Rémi Rousselet    6 年前

    你可以用 Future.wait(Future[]) 把一份期货清单合并成一份。

    class Merged {
      final String foo;
      final String bar;
    
      Merged({this.foo, this.bar});
    }
    
    Future<String> foo;
    Future<int> bar;
    new FutureBuilder(
      future: Future.wait([bar, foo]).then(
        (response) => new Merged(foo: response[0], bar: response[1]),
      ),
      builder: (context, AsyncSnapshot<Merged> snapshot) {
    
      },
    );