美文网首页
Flutter 3.3 普通路由 ,普通路由传值 命名路由 命名

Flutter 3.3 普通路由 ,普通路由传值 命名路由 命名

作者: 贝灬小晖 | 来源:发表于2020-03-10 11:17 被阅读0次

    //普通路由

    import 'package:flutter/material.dart';
    import 'detail.dart';
    class HomeController extends StatefulWidget {
      @override
      _HomeControllerState createState() => _HomeControllerState();
    }
    
    class _HomeControllerState extends State<HomeController> {
      @override
      Widget build(BuildContext context) {
        return ListView(
          children: <Widget>[
            RaisedButton(
              child: Text("我的跳转"),
              onPressed: (){
                Navigator.of(context).push(
                  MaterialPageRoute(
                    builder: (context){
                      //传值
                      return Detail("1234");
                    }
                  )
    
                );
              },
              
            )
          ],
    
        );
      }
    }
    
    
          RaisedButton(
                  child: Text("返回"),
                  onPressed: (){
                    Navigator.of(context).pop();
                  },
                )
    

    //命名路由 统一管理路由

    return MaterialApp(
          // home: HTopMain(),
          theme: ThemeData(primarySwatch: Colors.red),
          initialRoute:"/", //跳转的首页路由
          routes: {
            '/':(context){
              return HTopMain();
            },
            'detail':(context){
              return Detail("str");
            },
            'login':(context){
                return Login();
            },
            "tip2": (context){
                return Detail(ModalRoute.of(context).settings.arguments);
             },
          },
    
    
    
    Widget build(BuildContext context) {
        //获取路由参数  
        var args=ModalRoute.of(context).settings.arguments;
        //...省略无关代码
    ////
    

    //路由生成钩子

    假设我们要开发一个电商APP,当用户没有登录时可以看店铺、商品等信息,但交易记录、购物车、用户个人信息等页面需要登录后才能看。为了实现上述功能,我们需要在打开每一个路由页前判断用户登录状态!如果每次打开路由前我们都需要去判断一下将会非常麻烦,那有什么更好的办法吗?答案是有!


    Pasted Graphic 1.png
    判断 router 可以使用普通路由进行跳转.
    不好用 暂时不用了

    相关文章

      网友评论

          本文标题:Flutter 3.3 普通路由 ,普通路由传值 命名路由 命名

          本文链接:https://www.haomeiwen.com/subject/hqzidhtx.html