找不到路线发电机

问题描述 投票:4回答:1

我是新手,在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.

请遵循以下代码摘录:

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()
    }
));
}

请有人可以发一些建议吗?提前感谢您的关注

flutter
1个回答
13
投票

这是因为你已经实例化了两个MaterialApp小部件。您需要删除MyApp类中的那个,并可能将其更改为Scaffold,而不是这样:

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

您的代码中发生的是路由正在尝试解析最近的没有路由定义的MaterialApp。这就是说你应该只使用一个MaterialApp作为你的小部件树的根。

© www.soinside.com 2019 - 2024. All rights reserved.