flutter 当我在移除元素后转到页面时,我得到了错误Invalidvalue

nhaq1z21  于 2023-02-25  发布在  Flutter
关注(0)|答案(1)|浏览(121)

我有一个收藏用户的主列表。我还可以选择从主列表中删除用户,但从不同的页面删除。当我转到另一个页面并删除用户,然后返回主列表时,删除的用户消失,但错误无效值: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);
          }
        }

当我删除用户并返回到主列表时,我得到这个错误

6pp0gazn

6pp0gazn1#

问题与您正在从列表发生变化的主页面without notifying的另一个页面修改收藏夹用户列表有关,当您返回主列表时,它仍然认为列表的长度与之前相同,但现在实际上更小了,从而导致out-of-bounds错误。
您可以添加新的eventmethod进行更新,并在删除记录后添加emit新的state

相关问题