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

如何检查Dart构造函数传入的函数参数是否为null

问题:构造函数可选函数参数的null判断逻辑问题

我需要判断构造函数传入的函数是否为null,但即便未传入任何参数,检查时也无法按预期控制代码执行逻辑。

我的Widget代码如下:

const CropImageWidget({
    this.navBack,
    super.key,
  });

final Function? navBack;

我原本是这样检查navBack是否为null的:

if (widget.navBack == null) {
   Navigator.pop(context);
}
widget.navBack!();

实际运行后发现,即便navBack为null,widget.navBack!()依然会执行并报错。后来才意识到,我错误认为Navigator.pop(context)执行后会终止后续代码,但实际上页面弹出操作不会中断当前代码的执行流程,所以不管null判断是否成立,后续的函数调用都会执行。

解决方案

改用if/else分支逻辑,确保两种情况只会执行其中一种:

if (widget.navBack == null) {
    Navigator.pop(context);
} else {
    widget.navBack!();
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 13:45:39