我是新手,在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.
Run Code Online (Sandbox Code Playgroud)
请遵循以下代码摘录:
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()
}
));
}
Run Code Online (Sandbox Code Playgroud)
请有人可以发一些建议吗?提前感谢您的关注
azi*_*iza 31
这是因为您已经实例化了两个MaterialApp
小部件.您需要删除MyApp
类中的那个,并可能将其更改为Scaffold
以下内容:
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new Scaffold(
// ...
return new ListTile(
onTap: () {
Navigator.pushNamed(context, "/listadecompras");
},
// ...
}
Run Code Online (Sandbox Code Playgroud)
您的代码中发生的是路由尝试解析最近的MaterialApp
没有路由定义的路由.这就是说你应该只使用一个MaterialApp
作为你的小部件树的根.
小智 5
尝试这个 :
onPressed: () {
Navigator.push(
context,
new MaterialPageRoute(
builder: (context) => new ListaDeCompras(),
),
);
},
Run Code Online (Sandbox Code Playgroud)
小智 5
我遇到了类似的问题,因为我将路由定义为“/listadecompras”,然后Navigator.pushNamed(context, "listadecompras");
在不使用正斜杠的情况下进行调用。
这可能与这个问题不同,但它显示了相同的错误。
归档时间: |
|
查看次数: |
7275 次 |
最近记录: |