美文网首页
flutter-Could not find a generat

flutter-Could not find a generat

作者: 想做个文人 | 来源:发表于2019-11-06 18:03 被阅读0次

    最近在研究flutter这个东西,在做路由跳转的时候遇到点小小的问题,动态路由跳转没有任何问题,今天配置好的路由怎么点击都没有反应,度娘了很久没有头绪...最终在调试信息中找到了突破口。

    flutter路由的配置

    • 在主入口配置路由信息
      routes这个配置信息可以单独拿到一个router.dart的文件中去
    // router.dart
    const pageA = "/a";
    const pageB = "/b";
    
    var RoutePath = {
      "$pageA": (context) => PageA(),
      "$pageB": (context) => PageB(),
    };
    
    // main.dart
    routers: RoutePath
    
    void main() => runApp(new MainRouter());
    class MainRouter extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return new MaterialApp(
          initialRoute: '/', // 初始化路由
          routes: <String, WidgetBuilder>{ // 静态路由配置信息
            '/': (BuildContext context) => new MyApp2(),
            '/layout': (BuildContext context) => new Layout(),
          },
        );
      }
    }
    
    • 配置好路由后,进行路由跳转
      • 动态路由跳转
        动态路由跳转通过Navigation这个类调用push方法,然后通过MaterialPageRoute返回一个页面。
    Navigator.of(context).push(new MaterialPageRoute(
         builder: (context) {
               return Layout();
         }
    ));
    
    • 静态路由跳转
    Navigator.of(context).pushName('/layout'); // routerName
    or
    Navigator.pushName(context, '/layout'); // routerName
    

    but...

    问题

    在练习路由跳转时,静态路由死活跳不过去!也不清楚flutter的调试,所以度娘也没有什么结果,别人按照官网的跳转就能跳过去。在这个时候就需要看编辑器的控制台了,在点击按钮触发路由跳转的时候,调试控制台会报错!!Could not find a generator for route so,再次度娘下,发现是页面中有多个new MaterialApp() 用new Scaffold替换就OK了。

    image.png

    相关文章

      网友评论

          本文标题:flutter-Could not find a generat

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