Flutter错误:RangeError(index):无效值:不在0.7范围内(包括0.7):list.add()后为



我从API获取数据,并将数据添加到API。当我添加people.add(resp[0]); in addPeople():时,我遇到了这个错误

RangeError(index(:无效值:不在0..7(包括0..7(范围内:8

我添加此people.add(resp[0]);是因为我想在添加数据后显示。这是因为在我添加数据后,添加的数据没有显示。

这是我的代码:

List people;
List selectedPeople = [];
List checkBox = [];
@override
void initState() {
super.initState();
}
void addPeople(name) async {
http.Response response = await http.post(url, body: {'name': name});
final resp = json.decode(response.body);
setState(() {
Navigator.of(context).pop();
people.add(resp[0]);
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Home'),
actions: <Widget>[
IconButton(
icon: Icon(Icons.add_circle_outline), 
onPressed: () {
_asyncInputDialog(context);
}
),
]
),
body: _buildListView(),
);
}
Widget _buildListView() {
return ListView.separated(
itemCount: people == null ? 0 : people.length,
itemBuilder: (context, index) {
return ListTile(
title: Text(people[index]['name']),
trailing: Checkbox(
value: checkBox[index],
onChanged: (value) {
if (value) {
setState(() {
checkBox[index] = true; selectedPeople.add(people[index]);
});
} else {
setState(() {
checkBox[index] = false; selectedPeople.remove(people[index]);
});
}
},
),
);
},
separatorBuilder: (context, index) {return Divider();},
);
}
}

您正在添加人员,但没有添加复选框。

您必须添加以下行。

setState(() {
Navigator.of(context).pop();
people.add(resp[0]);
checkBox.add(false);
});

相关内容

最新更新