如何使用flutter中的路线导航到除main之外的页面?

时间:2019-05-21 07:19:33

标签: flutter

我创建了一种通过以下方式从一页导航到另一页的路线

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页到第二页的已实现路由,该路由正常工作,但是在这里不起作用。

2 个答案:

答案 0 :(得分:2)

尝试这个

Navigator.pushNamed(context, "/Completed");  

答案 1 :(得分:0)

我发现了我的错误。我没有实例化task(),而是创建了taskScreen()的实例。因此,从未设定新的路线。它解决了我的问题,但是我仍然很好奇,因为它们给了相同的输出Screen,这有什么不同。