【发布时间】:2021-08-29 11:25:10
【问题描述】:
child: FutureBuilder(
future: employees,
builder: (context, snapshot) {
if (snapshot.hasData) {
return generateList(snapshot.data);
}
if (snapshot.data == null || snapshot.data.length == 0) {
return Text('No Employee Found');
}
return CircularProgressIndicator();
},
),
错误参数类型“对象?”不能在下面的代码中分配给参数类型“列表”
return generateList(snapshot.data);
另一个错误无法无条件访问属性“长度”,因为接收者在代码中可以为“空”:
if (snapshot.data == null || snapshot.data.length == 0)
这里是 generateList 和 Employee 的代码 **************************************** ***
SingleChildScrollView generateList(List<Employee> employees) {
return SingleChildScrollView(
scrollDirection: Axis.vertical,
child: SizedBox(
width: MediaQuery.of(context).size.width,
child: DataTable(
columns: [
DataColumn(
label: Text('Name'),
),
DataColumn(
label: Text('Phome'),
),
DataColumn(
label: Text(''),
)
],
rows: employees
.map(
(employee) => DataRow(
cells: [
DataCell(
Text(employee.name),
onTap: () {
setState(() {
isUpdate = true;
employeeIdForUpdate = employee.id;
});
_employeeNameController.text = employee.name;
_employeePhoneController.text = employee.phone;
},
),
DataCell(
Text(employee.phone),
onTap: () {
setState(() {
isUpdate = true;
employeeIdForUpdate = employee.id;
});
_employeeNameController.text = employee.name;
_employeePhoneController.text = employee.phone;
},
),
DataCell(
IconButton(
icon: Icon(Icons.delete),
onPressed: () {
dbHelper.delete(employee.id);
refreshemployeeList();
},
),
)
],
),
)
.toList(),
),
),
);
}
class Employee {
int id = 0;
String name = "";
String phone = "";
Employee(this.id, this.name, this.phone);
Map<String, dynamic> toMap() {
var map = <String, dynamic>{
'id': id,
'name': name,
'phone': phone,
};
return map;
}
Employee.fromMap(Map<String, dynamic> map) {
id = map['id'];
name = map['name'];
phone = map['phone'];
}
}
【问题讨论】: