Dart 我试图用从API获得的数据创建一个列表视图 类搜索扩展了StatefulWidget{ int-id; 搜索([this.id]); @凌驾 _SearchState createState()=>new_SearchState(); } 类_SearchState扩展了状态{ @凌驾 void initState(){ super.initState(); } 无效处置(){ super.dispose(); } @凌驾 小部件构建(构建上下文){ widget.id; 归还新脚手架( appBar:新的appBar( 行动:[ 新图标按钮( 图标:新图标(图标。退出到应用程序), onPressed:\u getTicketDetails ), ], 标题:对, 标题:新文本 (“TicketsDetails”,样式:const TextStyle( fontFamily:“罂粟” ,), ), ), ); } _getTicketDetails()异步{ 打印(widget.id); var userDetails={}; 最终响应=等待http.get( “https…”,标题:{ HttpHeaders.AUTHORIZATION:访问\u令牌 }); List returnTicketDetails=json.decode(response.body); 打印(返回票证详情); 对于(变量i=0;i

Dart 我试图用从API获得的数据创建一个列表视图 类搜索扩展了StatefulWidget{ int-id; 搜索([this.id]); @凌驾 _SearchState createState()=>new_SearchState(); } 类_SearchState扩展了状态{ @凌驾 void initState(){ super.initState(); } 无效处置(){ super.dispose(); } @凌驾 小部件构建(构建上下文){ widget.id; 归还新脚手架( appBar:新的appBar( 行动:[ 新图标按钮( 图标:新图标(图标。退出到应用程序), onPressed:\u getTicketDetails ), ], 标题:对, 标题:新文本 (“TicketsDetails”,样式:const TextStyle( fontFamily:“罂粟” ,), ), ), ); } _getTicketDetails()异步{ 打印(widget.id); var userDetails={}; 最终响应=等待http.get( “https…”,标题:{ HttpHeaders.AUTHORIZATION:访问\u令牌 }); List returnTicketDetails=json.decode(response.body); 打印(返回票证详情); 对于(变量i=0;i,dart,flutter,Dart,Flutter,我想在列表视图中显示我的UserDeDetails的索引, 但是由于某些原因,编译器无法识别userDetails, 因此,它将其突出显示为错误。我以前做过,但我 不明白为什么我现在会遇到这个问题 当我运行它时,它只显示appBar,如注释中所述,您的userDetails变量的作用域在\u getTicketDetails方法中。如果希望它对类的其余部分可见,则需要在该方法之外声明它: class Search extends StatefulWidget { int id; Sea

我想在列表视图中显示我的UserDeDetails的索引, 但是由于某些原因,编译器无法识别userDetails, 因此,它将其突出显示为错误。我以前做过,但我 不明白为什么我现在会遇到这个问题


当我运行它时,它只显示appBar

,如注释中所述,您的
userDetails
变量的作用域在
\u getTicketDetails
方法中。如果希望它对类的其余部分可见,则需要在该方法之外声明它:

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);

  }

}

但是请注意,在修改此变量时,还应调用
setState
,以便颤振知道此小部件已更改,需要重新生成/呈现。

userDetails
的作用域是
\u getTicketDetails
的主体,因此无法在
build
方法中访问它。将其上移为
\u SearchState
的成员变量。
var userDetails = {}; // Moved outside

_getTicketDetails() async {
  ...
}