首页 > 解决方案 > 如何检查飞镖三元运算符中的空小部件值以在为空时显示默认图像?

问题描述

您好,我的颤振代码需要一些帮助我正在从 json 加载数据并将数据从一个屏幕传递到另一个屏幕。我想使用三元运算符来检查 null 但不断收到错误。

如果没有数据,我想加载默认图像,我收到错误 -表达式失败:布尔表达式不能为空。

下面是我在有状态小部件小部件中的代码片段。图像包含图像的数据

class DetailScreen extends StatefulWidget {

  //load json data to each section, using index provided from list page.

  final herbName;
  final index;
  final image;
  final text;
  DetailScreen({this.herbName,this.index,this.image,this.text});

  @override
  _DetailScreenState createState() => _DetailScreenState();
}

//下面的代码位于State内部

BoxDecoration(
              borderRadius: BorderRadius.all(Radius.circular(30.0)),
              color: Colors.redAccent,
              image: DecorationImage(
                fit: BoxFit.cover,
                image: **widget.image ? NetworkImage("http://images.neopets.com/altador/altadorcup/signup_full.gif")
                    :

                NetworkImage(widget.image),**

              )),

标签: imageflutterdartnullconditional-operator

解决方案


你可以试试这些
1. image: NetworkImage(widget.image ?? "http://images.neopets.com/altador/altadorcup/signup_full.gif")

2.image: widget.image == null ? NetworkImage("http://images.neopets.com/altador/altadorcup/signup_full.gif") : NetworkImage(widget.image);

您收到该错误是因为 widget.image 是一个字符串(并且您没有将它与任何东西进行比较)。三元运算与布尔值一起使用


推荐阅读