You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter中ListView的onDismissed调用方法导致页面崩溃求助

问题排查与解决

核心错误原因

你在Dismissible的onDismissed属性中直接调用了deleteRival(rival.idRival),这会导致Widget构建阶段就执行删除操作,同时onDismissed要求传入的是VoidCallback(无参数的函数类型),而你传入的是deleteRival执行后返回的Future对象,类型不匹配直接引发崩溃。

修复代码

修改Dismissible的onDismissed部分:

onDismissed: () => deleteRival(rival.idRival), // 用箭头函数包装,传递回调而非执行结果

优化建议(可选)

你的deleteRival方法中同时使用await和.then存在冗余,可以简化写法,同时增加异常捕获避免数据库操作出错导致的未知问题:

Future<void> deleteRival(rivalId) async {
  final statAccess = DatabaseModel();
  try {
    final value = await statAccess.deleteRival(rivalId);
    if (value == 1) {
      alertDialog("Suppression réussie", true);
    } else {
      alertDialog("Suppresion échouée", false);
    }
  } catch (e) {
    alertDialog("Erreur lors de la suppression", false);
    print("删除错误: $e");
  }
}

内容的提问来源于stack exchange,提问作者zsupraz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 05:54:09