簡體   English   中英

我正在嘗試使用從API獲得的數據創建列表視圖

[英]I am trying to create a list view with the data that I got from API

class Search extends StatefulWidget {

  int id;
  Search([this.id]);

  @override
  _SearchState createState() => new _SearchState();

}  
class _SearchState extends State<Search> {


  @override
  void initState() {
    super.initState();
  }

  void dispose() {
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    widget.id;

return new Scaffold(

      appBar: new AppBar(

        actions: <Widget>[

          new IconButton(
              icon: new Icon(Icons.exit_to_app),
              onPressed: _getTicketDetails
          ),


        ],
        centerTitle: true,
        title: new Text
          ("TicketsDetails", style: const TextStyle(
          fontFamily: 'Poppins'
          ,),
        ),

      ),

  );
  }

   _getTicketDetails() async {
    print(widget.id);
    var userDetails = {};
    final response = await http.get(
        "https....", headers: {
      HttpHeaders.AUTHORIZATION: access_token
    });

    List returnTicketDetails = json.decode(response.body);

    print(returnTicketDetails);

    for (var i = 0; i < (returnTicketDetails?.length ?? 0); i++) {
      final ticketresponse = await http.get(
          "https:...
              .toString()}", headers: {
        HttpHeaders.AUTHORIZATION:
        access_token
      });

      userDetails[returnTicketDetails[i]["user_id"]] =
          json.decode(ticketresponse.body);
    }
    print(userDetails);

  }

}

我想在Listview中顯示我的userDeatails的索引,但是由於某些原因,編譯器無法識別userDetails,因此將其突出顯示為錯誤。 我之前已經做過,但是我不明白為什么現在遇到這個問題。

在我運行時,它僅顯示appBar

如注釋中所述,您的userDetails變量的作用域位於_getTicketDetails方法內。 如果您希望它對您的其余部分可見,則需要在該方法之外聲明它:

var userDetails = {}; // Moved outside

_getTicketDetails() async {
  ...
}

但是請注意,在修改此變量時也應該調用setState ,以便Flutter知道此小部件已更改,需要重新構建/呈現。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM