如何解决Flutter:选择后删除选择文件图像
我想在我选择它后删除图像,但执行后显示此错误并且图像容器返回错误屏幕
'package:flutter/src/painting/image_provider.dart':断言失败: 第 854 行 pos 14: 'file != null': 不是真的。
这是我用来删除图像和显示图像的一般方法
Container(
height: MediaQuery.of(context).size.height * 0.2,//list height
child: ListView.builder(
itemCount: uploadedFilesList.length,shrinkWrap: true,scrollDirection: Axis.horizontal,itemBuilder: (context,index) {
return Padding(
padding: const EdgeInsets.all(8.0),child: Container(
child: Column(
children: [
InkWell(
onTap: () {
setState(() {
uploadedFilesList[index] = null;
});
},child: Icon(Icons.close)),Image.file(
uploadedFilesList[index],width: MediaQuery.of(context).size.width * .25,height: MediaQuery.of(context).size.height * .2,),],);
},
谁能告诉我我的代码哪里出了问题?
解决方法
在您的 setState 中,您正在设置 UploadFilesList[index] = null;这意味着您尝试使用的列表中存在空值:
Authorization
所以基本上,错误是说您将 null 传递给图像提供程序。
要修复它,我认为您应该使用以下方法删除该索引处的元素:
Image.file(uploadedFilesList[index],....)
而不是将其设置为 null。
,setState(() {
uploadedFilesList[index] = null;
});
这不应该为空
用任何虚拟图像替换 null 或用空容器替换图像提供程序。 您不能为图像提供程序提供空值。
uploadedFilesList[index]==null?Image.file(
uploadedFilesList[index],width: MediaQuery.of(context).size.width * .25,height: MediaQuery.of(context).size.height * .2,):Container(
width: MediaQuery.of(context).size.width * .25,),
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。