无法显示文件?作为图像
cannot display File? as image
我正在使用 imagepicker 来捕获图像,我已经实现了声音空安全,并将其传递到第二页,但是当我尝试在第二页上显示图像时出现错误:
参数类型 'File?' 无法分配给参数类型 'File'.
请帮忙,谢谢:)
下面是代码片段
// 第 1 页:变量语句和 getImage 函数
File? _image;
final _picker = ImagePicker();
Future getImage() async {
Map<Permission, PermissionStatus> statuses = await [
Permission.camera,
].request();
if (await Permission.camera.request().isGranted) {
PickedFile? _pickedFile = await _picker.getImage(
source: ImageSource.camera, maxHeight: 1920, maxWidth: 1080);
setState(() {
_image = File(_pickedFile!.path);
});
}}
// 第一页:执行getImage函数的按钮
ElevatedButton(
onPressed: () async {
await getImage();
Navigator.push(context, MaterialPageRoute(builder: (context) {
return SecondPage(image: _image);
})); //callback
},
// 第二页 class
class SecondPage extends StatefulWidget {
File? image;
//c'tor
SecondPage({
Key? key,
@required this.image,
}) : super(key: key);
@override
_SecondPageState createState() => _SecondPageState();
}
//在第2页正文中显示错误的地方
SizedBox(
width: 300,
height: 265,
child: Image.file(widget.image),
),
您收到的错误来自空安全,类型 File?
意味着它可以是 File
或 null
,但您的变量只接受 File
,没有 null
值。
为此,您可以通过在变量末尾添加 !
来“强制”使用 'non-null' 变量,但这样做时要小心。
Image.file(widget.image!),
您可以在官方文档中了解更多关于空安全语法和原则:https://flutter.dev/docs/null-safety。
https://api.flutter.dev/flutter/material/DropdownButton-class.html.
我正在使用 imagepicker 来捕获图像,我已经实现了声音空安全,并将其传递到第二页,但是当我尝试在第二页上显示图像时出现错误: 参数类型 'File?' 无法分配给参数类型 'File'.
请帮忙,谢谢:)
下面是代码片段
// 第 1 页:变量语句和 getImage 函数
File? _image;
final _picker = ImagePicker();
Future getImage() async {
Map<Permission, PermissionStatus> statuses = await [
Permission.camera,
].request();
if (await Permission.camera.request().isGranted) {
PickedFile? _pickedFile = await _picker.getImage(
source: ImageSource.camera, maxHeight: 1920, maxWidth: 1080);
setState(() {
_image = File(_pickedFile!.path);
});
}}
// 第一页:执行getImage函数的按钮
ElevatedButton(
onPressed: () async {
await getImage();
Navigator.push(context, MaterialPageRoute(builder: (context) {
return SecondPage(image: _image);
})); //callback
},
// 第二页 class
class SecondPage extends StatefulWidget {
File? image;
//c'tor
SecondPage({
Key? key,
@required this.image,
}) : super(key: key);
@override
_SecondPageState createState() => _SecondPageState();
}
//在第2页正文中显示错误的地方
SizedBox(
width: 300,
height: 265,
child: Image.file(widget.image),
),
您收到的错误来自空安全,类型 File?
意味着它可以是 File
或 null
,但您的变量只接受 File
,没有 null
值。
为此,您可以通过在变量末尾添加 !
来“强制”使用 'non-null' 变量,但这样做时要小心。
Image.file(widget.image!),
您可以在官方文档中了解更多关于空安全语法和原则:https://flutter.dev/docs/null-safety。
https://api.flutter.dev/flutter/material/DropdownButton-class.html.