Тип аргумента «Карта» не может быть присвоен типу параметра » Карта»

#flutter #sqlite

Вопрос:

я использую flutter с sqlite. ошибка возникает в » картах[i]»

 Future<List<Employee>> getEmployee() async {
    var dbClient = await db;
    List<Map> maps = await dbClient!.query('employee', columns: ['id', 'name','phone']);
    List<Employee> employees = [];
    if (maps.length > 0) {
      for (int i = 0; i < maps.length; i  ) {
        employees.add(Employee.fromMap(maps[i]));
      }
    }
    return employees;
  }
 

Ответ №1:

Это связано с тем, что Employee.fromMap ожидание Map<String, dynamic> изменяет вашу функцию следующим образом.

    Future<List<Employee>> getEmployee() async {
        var dbClient = await db;
        List<Map> maps = await dbClient!.query('employee', columns: ['id', 'name','phone']);
        List<Employee> employees = [];
        if (maps.length > 0) {
          for (int i = 0; i < maps.length; i  ) {
            employees.add(Employee.fromMap(Map<String, dynamic>.from(maps[i])));
          }
        }
        return employees;
      }