我创建了一种通过以下方式从一页导航到另一页的路线
class task extends StatelessWidget{
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Task',
home: new task(),
routes: <String, WidgetBuilder>{
"/Completed": (BuildContext context) => new Completed()
}
);
}
}
class taskScreen extends StatefulWidget{
@override
taskState createState() => new taskState();
}
class taskState extends State<taskScreen> {
@override
Widget build(BuildContext context) {
Column taskScreen = Column(
children: <Widget>[
FlatButton(
..,
onPressed: (){
Navigator.of(context).pushNamed("/Completed");
},
child: Text(
"Completed",
),
),
],
)
]);
return Scaffold(
appBar: AppBar(
title: Text('Task Screen')),
body: taskScreen,
);
}
}
但是,当我尝试导航时会出现错误:
在_WidgetsAppState中找不到路由RouteSettings(“ / Completed”,null)的生成器。
如何解决此错误?
我以前使用过从main.dart页到第二页的已实现路由,该路由正常工作,但是在这里不起作用。
答案 0 :(得分:2)
尝试这个
Navigator.pushNamed(context, "/Completed");
答案 1 :(得分:0)
我发现了我的错误。我没有实例化task(),而是创建了taskScreen()的实例。因此,从未设定新的路线。它解决了我的问题,但是我仍然很好奇,因为它们给了相同的输出Screen,这有什么不同。