微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用来自 API 的数据填充 flutter dropdownButton 时出错

如何解决使用来自 API 的数据填充 flutter dropdownButton 时出错

我有一个应用程序,我需要在其中显示一组年份,这些年份来自 API 调用。目前我能够成功生成数据并访问它,我正在使用打印语句查看数据。

我需要将此数据呈现到 dropdownButton 上,但是我收到了一些错误

这是我的网络电话

Future <List <dynamic>> fetchFilters() async{
dynamic response = await $apiUrl',headers: {'x-api-key': $key);

var filterData = List<dynamic>();

if (response.statusCode == 200){
  dynamic filterjson = jsonDecode(response.body);
  String filterData = filterjson;
  //Todo: remove print statements
  //print('finish');
  //print(filterData);
}
//Inventory is returned
return filterData;

}

这将数据从该视图返回到我的一个视图,我可以执行打印语句并打印出从 API 调用返回的数据。但是当我尝试将数据呈现到 dropdownButton 上时,我收到以下错误: RangeError (index): Invalid value: Valid value range is empty: 1

这是视图代码

    dynamic _selectedValue;
  List filterDataList = [];

  //Create Network Helper Obj
  NetworkHelper networkHelper = NetworkHelper();
  @override
  void initState() {
    super.initState();

    networkHelper.fetchFilters().then((value){
      setState(() {
        this.filterDataList.addAll(value);
      });
    });
  }


  @override

  Widget build(BuildContext context) {
  print(filterDataList[1]['year']);

    return Scaffold(
        backgroundColor: Colors.white,appBar: AppBar(
          elevation: 0.0,title: AppBarTitle(),),body: DropdownButton<String>(
          value: _selectedValue,items: filterDataList[1]['year'].map((item) => DropdownMenuItem<dynamic>(child: Text(item))).toList(),hint: Text("Select Year"),onChanged: (String value){
           setState(() {
             _selectedValue = value;
             print(_selectedValue);
           });
          },

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。