Search code examples
flutter

Could not find a generator for route


I´m newbie to flutter and reveice one exception about route and paginator in Flutter.

EXCEPTION CAUGHT BY GESTURE
The following assertion was thrown while handling a gesture:
Could not find a generator for route "/listadecompras" in the _MaterialAppState.

Follow a excerpt from code:

import 'package:flutter/material.dart';

class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new MaterialApp(
// ...                    
                return new ListTile(
                  onTap: () {                                         
                    Navigator.pushNamed(context, "/listadecompras");
                  },
// ...
}


class ListaDeCompras extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new Scaffold(
// ...
}
}


void main() {
runApp(new MaterialApp(
    home: new MyApp(), 
    routes: <String, WidgetBuilder>{
        "/listadecompras": (BuildContext context) => new ListaDeCompras()
    }
));
}

Please, someone could send some advice? thanks in advance for your attention


Solution

  • Because Of instantiated two MaterialApp widgets. You need to remove the one in MyApp class and may change it to Scaffold

    Example:

    class MyApp extends StatelessWidget {
    @override
    Widget build(BuildContext context) {
    return new Scaffold(
    // ...                    
                    return new ListTile(
                      onTap: () {                                         
                        Navigator.pushNamed(context, "/listadecompras");
                      },
    // ...
    }
    

    THE PROBLEM IS YOUR CODE IS - the route is trying to resolve for the nearest MaterialApp which has no route definition. That said you should use only one MaterialApp as the root of your widget tree.