0

I'm having problems with my code as I'm getting undefined_identifier errors.

I'm trying to pass the image I captured from 'GeneratedGroup1Widget1.dart' using 'flutter_screenutils' to 'GeneratedResultsWidget.dart'. However, my route in 'main.dart' doesn't define the image variable inside my parameter. I've been trying to fix this error for 10 hours now. Please help. Thanks in advance!

Error: (main.dart)

Undefined name 'image'.
Try correcting the name to one that is defined, or defining the name.

Here are my codes:

'GeneratedGroup1Widget1.dart'

class GeneratedGroup1Widget1 extends StatefulWidget {
  @override
  _GeneratedGroup1Widget1State createState() => _GeneratedGroup1Widget1State();
}

class _GeneratedGroup1Widget1State extends State<GeneratedGroup1Widget1> {
  Future _pickImage() async {
    final imageSource = await showDialog<ImageSource>(
      context: context,
      builder: (context) => SimpleDialog(
        title: const Text('Select Image Source'),
        children: [
          SimpleDialogOption(
            onPressed: () => Navigator.pop(context, ImageSource.camera),
            child: const Text('Camera'),
          ),
          SimpleDialogOption(
            onPressed: () => Navigator.pop(context, ImageSource.gallery),
            child: const Text('Gallery'),
          ),
        ],
      ),
    );
    if (imageSource != null) {
      final image = await ImagePicker().pickImage(source: imageSource);
      Navigator.pushNamed(context, '/GeneratedResultsWidget', arguments: image);
    }
  }

  @override
  Widget build(BuildContext context) {
    return GestureDetector(
      onTap: () => _pickImage(),
      child: Container(
      ....

'GeneratedResultsWidget.dart'

class GeneratedResultsWidget extends StatelessWidget {
  final XFile file;

  const GeneratedResultsWidget({required Key key, required this.file})
      : super(key: key);

  @override
  Widget build(BuildContext context) {
    if (file == null) {
      return Scaffold(body: Center(child: Text('No Image selected')));
    } else {
      return Scaffold(body: Center(child: Text(file.path)));
    }
  }
}

class GeneratedResultsWidget1 extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Material(
    ...

'main.dart'

void main() {
  runApp(FoodClassifierApp());
}

class FoodClassifierApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return ScreenUtilInit(
      designSize: Size(360, 640),
      builder: (BuildContext context, child) => MaterialApp(
        title: 'food-classifier',
        theme: ThemeData(
          primarySwatch: Colors.blue,
        ),
        initialRoute: '/GeneratedHomepageWidget',
        routes: {
          '/GeneratedScanWidget': (context) => GeneratedScanWidget(),
          '/GeneratedResultsWidget': (context) =>
              GeneratedResultsWidget(key: UniqueKey(), file: image),
          '/GeneratedHomepageWidget': (context) => GeneratedHomepageWidget(),
          '/GeneratedFoodlistWidget': (context) => GeneratedFoodlistWidget(),
        },
      ),
    );
  }
}

This is my first time coding in flutter and I used figma to generate my widgets.

hatzuramen
  • 33
  • 3
  • It is pretty unclear if you wanna pass an image (in which format? A bitmap?) or if you wanna pass a string containing the path to an image file on file system. – blackapps Feb 07 '23 at 10:56

0 Answers0