flutter-Could not find a generat

2019-11-06  本文已影响0人  想做个文人

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

flutter路由的配置

// 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(),
      },
    );
  }
}
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
上一篇下一篇

猜你喜欢

热点阅读