'XFIle' 类型的值无法分配给 'File' 类型的变量错误
A value of type 'XFIle' can't be assigned to a variable of type 'File' error
我在使用 image_picker: ^0.8.4+4 时出现此错误。我可以做些什么来使这段代码正确?
late File selectedImage;
bool _isLoading = false;
CrudMethods crudMethods = CrudMethods();
Future getImage() async {
var image = await ImagePicker().pickImage(source: ImageSource.gallery);
setState(() {
selectedImage = image; //A value of type 'XFIle' can't be assigned to a variable of type 'File' error.
});
}
uploadBlog() async {
// ignore: unnecessary_null_comparison
if (selectedImage != null) {
setState(() {
_isLoading = true;
});
您可以使用以下行将 XFile 转换为文件:
selectedImage = File(image.path);
首先,您应该将变量创建为 XFile
因为这是您从图像选择器中获得的。
XFile photo;
void _pickImage() async {
final ImagePicker _picker = ImagePicker();
photo = await _picker.pickImage(source: ImageSource.camera);
if (photo == null) return;
}
然后您就可以将您的图像用作文件图像了。
Image.file(File(photo.path))
发生这种情况是因为您正在使用的包 (image_picker ) 依赖于 XFile 而不是 File,就像以前那样。
因此,首先您必须创建一个类型为 File
的变量,以便您稍后可以像以前一样使用,在获取 selectedImage
之后,您传递路径以实例化文件。像这样:
File? selectedImage;
bool _isLoading = false;
CrudMethods crudMethods = CrudMethods();
Future getImage() async {
var image = await ImagePicker().pickImage(source: ImageSource.gallery);
setState(() {
selectedImage = File(image!.path); // won't have any error now
});
}
//implement the upload code
我在使用 image_picker: ^0.8.4+4 时出现此错误。我可以做些什么来使这段代码正确?
late File selectedImage;
bool _isLoading = false;
CrudMethods crudMethods = CrudMethods();
Future getImage() async {
var image = await ImagePicker().pickImage(source: ImageSource.gallery);
setState(() {
selectedImage = image; //A value of type 'XFIle' can't be assigned to a variable of type 'File' error.
});
}
uploadBlog() async {
// ignore: unnecessary_null_comparison
if (selectedImage != null) {
setState(() {
_isLoading = true;
});
您可以使用以下行将 XFile 转换为文件:
selectedImage = File(image.path);
首先,您应该将变量创建为 XFile
因为这是您从图像选择器中获得的。
XFile photo;
void _pickImage() async {
final ImagePicker _picker = ImagePicker();
photo = await _picker.pickImage(source: ImageSource.camera);
if (photo == null) return;
}
然后您就可以将您的图像用作文件图像了。
Image.file(File(photo.path))
发生这种情况是因为您正在使用的包 (image_picker ) 依赖于 XFile 而不是 File,就像以前那样。
因此,首先您必须创建一个类型为 File
的变量,以便您稍后可以像以前一样使用,在获取 selectedImage
之后,您传递路径以实例化文件。像这样:
File? selectedImage;
bool _isLoading = false;
CrudMethods crudMethods = CrudMethods();
Future getImage() async {
var image = await ImagePicker().pickImage(source: ImageSource.gallery);
setState(() {
selectedImage = File(image!.path); // won't have any error now
});
}
//implement the upload code