flutter - 如何解决删除列表视图项目的问题
问题描述
我需要在按钮单击时删除列表视图项目
本地数据源
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');
},
解决方案
您没有发布足够的代码来实际查看这是否是唯一的错误。
但是在您发布的代码中,您将tasks.length
作为要删除的任务的索引传递。虽然我不知道您要删除哪个任务,但tasks.length
绝对不是您的一项任务的索引,但实际上可以保证它根本不是您的任务的索引。
您的方法似乎都可以很好地处理async
/await
模式,然后在您的onTap
方法中,它看起来就像您以前从未听说过Future<>
一样。如果这些方法是由不同的人编写的,可能会联系第一个并寻求建议。如果所有这些都是你写的,你需要休息一下,喝杯咖啡什么的。
推荐阅读
- selenium-webdriver - 如何在网页上自动化谷歌地图图像?
- javascript - 在控制台日志中打印数组内容
- javascript - vue条件显示
- python - 使用 Python 读取和处理大型 CSV
- php - php json数组中的未定义错误
- bash - 比较两个版本号(如果不同的次要版本则为真)
- javascript - 使用javascript函数onclick div替换HTML内容?
- macos - 未找到 NSNotification.Name.frameDidChangeNotification
- spring - 如何从 Java 文件中获取值到 jsp?
- python - 在 tf.keras 中使用 CsvDataset for model.fit 来自 CSV 的特征和标签