Отсутствует конкретная реализация StatelessWidget

#flutter

#flutter

Вопрос:

Эта страница — мой PhotoPreviewScreen, на котором я отправляю фотографию с экрана камеры на домашнюю страницу после нажатия кнопки в приведенном ниже коде.

Я получаю некоторые интересные ошибки, которые я раньше не видел, с очень небольшим количеством документов, которые приведены на скриншоте. Кто-нибудь видел это раньше? Как я могу исправить?

 import 'package:flutter/material.dart';
import 'dart:io';

class PhotoPreviewScreen extends StatelessWidget {
  Function setData;
  PhotoPreviewScreen({Key key, this.setData}) : super(key: key);
}

class _PhotoPreviewScreenState extends State<PhotoPreviewScreen> {
  final String imagePath;
  var image;

  Future _openGallery() async {}


  @override
  Widget build(BuildContext context) {
    return Scaffold(
      floatingActionButton: FloatingActionButton(
        onPressed: () => Navigator.pop(
            context), // Go back to the camera to take the picture again
        child: Icon(Icons.camera_alt),
      ),
      appBar: AppBar(title: Text('Photo Preview')),
      body: Column(children: [
        Expanded(child: Image.file(File(imagePath))),
        const SizedBox(height: 16.0),
        OutlineButton(
          onPressed: () {
            _openGallery();
            Navigator.pop(context);
          },
          child: Text('Okay'),
          borderSide: BorderSide(
              color: Color(
                  0xff33333D)), 
        ),
      ]),
    );
  }
}
 

ошибки

введите описание изображения здесь

Ответ №1:

 class PhotoPreviewScreen extends StatefulWidget {Function setData;   PhotoPreviewScreen({Key key, this.setData}) : super(key: key); }
 

Я думаю, это должно быть «StatefulWidget» вместо «StatelesWidget».

Комментарии:

1. По-прежнему получаем первую и третью ошибки, но теперь для StatefulWidget.createState

Ответ №2:

Попробуйте приведенные ниже фрагменты кода:

 import 'package:flutter/material.dart';
import 'dart:io';

class PhotoPreviewScreen extends StatefulWidget {
  Function setData;
  PhotoPreviewScreen({Key key, this.setData}) : super(key: key);

_PhotoPreviewScreenState createState() => _PhotoPreviewScreenState();
}

class _PhotoPreviewScreenState extends State<PhotoPreviewScreen> {
  final String imagePath = ' ';
  var image;

  Future _openGallery() async {}


  @override
  Widget build(BuildContext context) {
    return Scaffold(
      floatingActionButton: FloatingActionButton(
        onPressed: () => Navigator.pop(
            context), // Go back to the camera to take the picture again
        child: Icon(Icons.camera_alt),
      ),
      appBar: AppBar(title: Text('Photo Preview')),
      body: Column(children: [
        Expanded(child: Image.file(File(imagePath))),
        const SizedBox(height: 16.0),
        OutlineButton(
          onPressed: () {
            _openGallery();
            Navigator.pop(context);
          },
          child: Text('Okay'),
          borderSide: BorderSide(
              color: Color(
                  0xff33333D)), 
        ),
      ]),
    );
  }
}