首页 > 解决方案 > 如何解决删除列表视图项目的问题

问题描述

我需要在按钮单击时删除列表视图项目

本地数据源

Future<void> deleteTask(int index) async {
    final box = await asyncBox;
    await box.deleteAt(index);
  }

tasks_repository

Future<void> deleteLocalTask(int index) async {
    await tasksLocalDataSource.deleteTask(index);
  }

tasks_provider

Future<void> deleteTasks(int index) async {
    await tasksRepository.deleteLocalTask(index);
  }

删除元素的按钮

 return GestureDetector(
          onTap: () {
               final delete = context
                       .read(tasksProvider.notifier)
                       .deleteTasks(tasks.length);
                       delete;
                      log('$delete');
                              },

标签: flutterdart

解决方案


您没有发布足够的代码来实际查看这是否是唯一的错误。

但是在您发布的代码中,您将tasks.length作为要删除的任务的索引传递。虽然我不知道您删除哪个任务,但tasks.length绝对不是您的一项任务的索引,但实际上可以保证它根本不是您的任务的索引。

您的方法似乎都可以很好地处理async/await模式,然后在您的onTap方法中,它看起来就像您以前从未听说过Future<>一样。如果这些方法是由不同的人编写的,可能会联系第一个并寻求建议。如果所有这些都是你写的,你需要休息一下,喝杯咖啡什么的。


推荐阅读