Flutter 如何获取所选项目';颤振中下拉按钮中的s索引号?

Flutter 如何获取所选项目';颤振中下拉按钮中的s索引号?,flutter,dart,Flutter,Dart,我用GET请求的distList.sectionName值填充下拉菜单。我试图做的是捕获所选博物馆的索引,然后将该索引的值发送到另一个API调用。例如假设用户在下拉菜单中选择“互联网Muzesi”。之后,我需要在distList中找到“internetmüzesi”的位置。然后捕捉这两个字段:“distId”:“MRK”和“sectionId”:“INT01”值,这样我就可以将这些值发送到另一个API调用。我怎样才能做到这一点 我的下拉按钮小部件: Container( child: D

我用GET请求的distList.sectionName值填充下拉菜单。我试图做的是捕获所选博物馆的索引,然后将该索引的值发送到另一个API调用。例如假设用户在下拉菜单中选择“互联网Muzesi”。之后,我需要在distList中找到“internetmüzesi”的位置。然后捕捉这两个字段:“distId”:“MRK”和“sectionId”:“INT01”值,这样我就可以将这些值发送到另一个API调用。我怎样才能做到这一点

我的下拉按钮小部件:

Container(
    child: DropdownButton<String>(
      hint: Text("Lütfen listeden seçim yapın."),
      items: snapshot.data.distList
          .map<DropdownMenuItem<String>>((item) {
        return DropdownMenuItem<String>(
            value: item.sectionName,
            child: Text(item.sectionName));
      }).toList(),
      value: _currentSelectedValue,
      isExpanded: false,
      onChanged: (String? value) {
        print("Drop Down Selected Museum is $value");
        setState(() {
          _currentSelectedValue = value;
        });
      },
    ),
  ),

好的,我找到了解决办法

在setState中,我捕获selectedValue的字段,如下所示:

                                  _currentSelectedValue = value;
                                  var var2 = snapshot.data.distList!.firstWhere(
                                      (e) =>
                                          e.sectionName ==
                                          "$_currentSelectedValue");
                                  print(var2.distId);
                                  print(var2.sectionId);
                                });

我试图解决这个问题,但你找到了更好的答案。谢谢分享答案+1.
                                  _currentSelectedValue = value;
                                  var var2 = snapshot.data.distList!.firstWhere(
                                      (e) =>
                                          e.sectionName ==
                                          "$_currentSelectedValue");
                                  print(var2.distId);
                                  print(var2.sectionId);
                                });