我创建了一个功能,用户可以在其中上传图像并上传文本的描述信息。 用户可以选择不同地上传具有描述的图像,也可以仅不同地上传描述而没有图像。将文本上传到Firestore中并查询以显示在用户帖子中后,它将返回错误:
Cached_image_widget.dart:失败的断言:第163行POS 16:'imageUrl!= null':不正确。
cachedNetworkImage方法代码:
Widget cachedNetworkImage(String mediaUrl) {
return CachedNetworkImage(
imageUrl: mediaUrl,
fit: BoxFit.cover,
placeholder: (context, url) => Padding(
padding: EdgeInsets.all(20.0),
child: CircularProgressIndicator(),
),
errorWidget: (context, url, error) => Icon(Icons.error),
);
}
这是我的帖子图片代码:
buildPostImage() {
return Padding(
padding: const EdgeInsets.all(8.0),
child: GestureDetector(
onDoubleTap: handleLikePost,
child: Stack(
alignment: Alignment.center,
children: <Widget>[
cachedNetworkImage(mediaUrl),
showHeart ? Icon(Icons.favorite, size: 100.0, color:
Colors.grey[400]) :
Text(''),
],
),
),
);
}
这是描述代码:
Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Expanded(
child: Padding(
padding: const EdgeInsets.only(),
child: Container(
decoration: BoxDecoration(
// color: Colors.grey[800],
borderRadius: BorderRadius.circular(0.0)
),
child: Padding(
padding: const EdgeInsets.all(10.0),
child: Text(
description,
style: TextStyle(
fontSize: 17.0,
),
),
),
),
),
),
],
),
答案 0 :(得分:2)
似乎imageUrl接收到空值,要修复此问题,您可以执行以下操作:
buildPostImage() {
return Padding(
padding: const EdgeInsets.all(8.0),
child: GestureDetector(
onDoubleTap: handleLikePost,
child: Stack(
alignment: Alignment.center,
children: <Widget>[
mediaUrl != null ? cachedNetworkImage(mediaUrl) : Container(),
showHeart ? Icon(Icons.favorite, size: 100.0, color:
Colors.grey[400]) :
Text(''),
],
),
),
);
}