检查 null 是否产生错误 - 不能无条件访问,因为接收者可以是“null”

时间:2021-07-28 07:35:50

标签: flutter

我想检查 Icon 是否不返回 null,如果它返回 null 则显示 SvgPic ,否则显示 Icon

错误:

  1. 位置参数过多,
  2. 无法无条件访问属性“icon”,因为接收器可以为“null”。尝试使访问有条件(使用“?.”)或向目标添加空检查(“!”)。

.

final SvgPicture? svgPic; final Icon? icon;
child: Container(widget.icon == null
                                ? widget.svgPic
                                : Icon(widget.icon.icon,
                                    color: widget.iconColour)),
                          ),

1 个答案:

答案 0 :(得分:1)

  • 位置参数过多

您没有在该容器中添加任何参数标签

  • 无法无条件访问属性“icon”,因为接收器可以为“null”。尝试使访问有条件(使用 '?.')或向目标添加空检查 ('!')

您正在尝试访问可空对象的图标属性,因此您需要使用 ?或!。

代替:

Container(widget.icon == null ? widget.svgPic
   : Icon(widget.icon.icon, color: widget.iconColour),
),

使用:

Container(child: widget.icon == null ? widget.svgPic
   : Icon(widget.icon!.icon, color: widget.iconColour)
),