не добавляет ли изображение в дочерний класс с помощью imagepicker?

#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; @LakshanCosta

3. Большое спасибо. Также я думаю, что часть тела должна измениться, : Image.file(_image), ——-> « Файл изображения(_image!),«

4. да,я забыл об этом,я обновил ответ@LakshanCosta

Ответ №2:

Вы должны инициализировать _image, используя File _image; затем внутри setState использовать _image = File(pickedFile.path); выбранный файл, возвращаемый из ImagePicker. Пожалуйста, пришлите полный код для более индивидуального ответа