#image #flutter #dart #imagepicker
Вопрос:
Ошибка: Поле «_image» должно быть инициализировано, поскольку его тип «Файл» не допускает значение null.
- «Файл» взят из «dart:io». Файл _image; ^^^^^^
код:
ребенок: _image != null ? null : файл изображения(_image,fit: BoxFit.fill,),
Ответ №1:
Проверьте этот код,вам нужно использовать setState в функции выбора изображения, чтобы обновить представление или отобразить изображение
class _MyHomePageState extends State<MyHomePage> {
File? _image;
final picker = ImagePicker();
Future getImage() async {
final pickedFile = await picker.getImage(source: ImageSource.gallery);
setState(() {
if (pickedFile != null) {
_image = File(pickedFile.path);
} else {
print('No image selected.');
}
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Image Picker Example'),
),
body: Center(
child: _image == null
? Text('No image selected.')
: Image.file(_image!),
),
floatingActionButton: FloatingActionButton(
onPressed: getImage,
tooltip: 'Pick Image',
child: Icon(Icons.add_a_photo),
),
);
}
}
Комментарии:
1. У меня возникла проблема, и я получил следующую ошибку,
info: The operand can't be null, so the condition is always false.
это было из-за_image == null ? Text("No image selected")
детали. Каково решение этой проблемы? Я видел, как то же самое используется во многих местах, но я получаю вышеуказанную ошибку. по какой причине?2. это нулевая ошибка безопасности, я думаю, попробуйте вот так
File? _image;
@LakshanCosta3. Большое спасибо. Также я думаю, что часть тела должна измениться,
: Image.file(_image),
——-> « Файл изображения(_image!),«4. да,я забыл об этом,я обновил ответ@LakshanCosta
Ответ №2:
Вы должны инициализировать _image, используя File _image;
затем внутри setState использовать _image = File(pickedFile.path);
выбранный файл, возвращаемый из ImagePicker. Пожалуйста, пришлите полный код для более индивидуального ответа