如何在dart三元运算符中检查null小部件值,如果为null则显示默认图像?

问题描述 投票:1回答:1

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

如果没有数据,我想加载默认图像,但出现错误-失败的表达式:布尔表达式不能为null。

以下是我的代码片段在有状态小部件内widget.image包含图像的数据

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();
}

//以下代码位于州内

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),**

              )),
image flutter dart null conditional-operator
1个回答
0
投票

您可以尝试这些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是一个字符串(并且您没有将它与任何东西进行比较)。三元运算适用于Boolean

© www.soinside.com 2019 - 2024. All rights reserved.