我有一个收藏用户的主列表。我还可以选择从主列表中删除用户,但从不同的页面删除。当我转到另一个页面并删除用户,然后返回主列表时,删除的用户消失,但错误无效值:Not in inclusive range 0..3: 4
出现。
如何修复此错误,以便在另一个页面上删除用户,但在返回时不会出现错误?
这是显示收藏夹用户的主页
if (state is FavoritesUserLoaded) {
stations = state.users;
return ListView.builder(
physics: const BouncingScrollPhysics(),
itemCount: stations.length,
itemBuilder: (context, index) {
for (var i = 0; i < stations.length; i++) {
stations[i].isFavorite ? selected.add(true) : selected.add(false);
}
final String city = stations[index].city ?? '';
final String address = stations[index].address ?? '';
}
另一个页面,在这里我从收藏夹中删除用户
if (state is FavoritesUserLoaded) {
if (state.users.isNotEmpty) {
state.users.removeWhere(
(element) => element.id == widget.userModel.id);
}
}
当我删除用户并返回到主列表时,我得到这个错误
1条答案
按热度按时间6pp0gazn1#
问题与您正在从列表发生变化的主页面
without notifying
的另一个页面修改收藏夹用户列表有关,当您返回主列表时,它仍然认为列表的长度与之前相同,但现在实际上更小了,从而导致out-of-bounds
错误。您可以添加新的
event
或method
进行更新,并在删除记录后添加emit
新的state
。