您好,我需要我的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),**
)),
您可以尝试这些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