The argument type 'Map<dynamic, dynamic>' can't be assigned to the parameter type 'Map<String, dynamic>'

Viewed 184

i'm using flutter with sqlite. error occur in 'maps[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 Answers

This is because the Employee.fromMap expecting Map<String, dynamic> Change your function as follows.

   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;
      }
Related