首页 > 解决方案 > Flutter:将响应数据放入下拉列表中

问题描述

我有一个应用程序,我想将我从 json 收到的数据(我在放入下拉列表之前收到,所以不需要使用未来)放在下拉列表中,但我不能让它工作。

这是我在开始时运行并从 json 接收数据的函数:

Future loadEmployees() async {
    Response response;
    Dio dio = new Dio();
    String url = 'http://192.168.15.5:8090/api/employees';
    response = await dio.post(url);

    EmployeessList employeesList =
        EmployeesList.fromJson(response.data);
  
  }

所以数据存储在employeesList 中,但是如何在下拉项目中显示呢?

也许使用 for 来运行所有员工并发送到列表?我真的不知道,我已经尝试了几天,但仍然无法做到。

这是我的 PODO 对象类:


class EmployeesList {
  final List<Employees> employees;

  EmployeesList({
    this.employees,
  });

  factory EmployeesList.fromJson(List<dynamic> parsedJson) {
    List<Employees> employees= new List<Employees>();
    employees= parsedJson.map((i) => Employees.fromJson(i)).toList();

    return new EmployeesList(
      Employees: employees,
    );
  }
}

class Employees{
  final int code;
  final String name;

  Employees({this.code, this.name});

  factory Employees.fromJson(Map<String, dynamic> json) {
    return new Employees(code: json['Codigo'], name: json['Nome']);
  }
}

标签: flutterdart

解决方案


您可以映射实体列表。例如:

return DropdownButton<Employee>(
  items: employeesList.map((employee) {
    return DropdownMenuItem<Employee>(
      value: employee,
      child: Text(employee.name),
    );
  }).toList(),
);

推荐阅读