MaterialApp中initialRoute和home之间的区别

时间:2020-05-13 01:24:16

标签: flutter dart

当Flutter中已经有initialRoute时,为什么存在home属性?

1 个答案:

答案 0 :(得分:8)

更多关于代码的可读性(但不仅限于此),请参阅它们均以不同的方式完成相同的工作:

runApp(
  MaterialApp(
    home: HomePage(),
  ),
);

runApp(
  MaterialApp(
    initialRoute: '/',
    routes: {
      '/': (_) => HomePage(),
    },
  ),
);

使用onGenerateInitialRoute / onGenerateRoute也可以更改导航器动画。

runApp(
  MaterialApp(
    onGenerateInitialRoutes: (route) {
      return [
        MaterialPageRoute(builder: (_) => HomePage())
      ];
    }
  ),
);

runApp(
  MaterialApp(
    initialRoute: '/',
    onGenerateRoute: (settings) {
      if (settings.name == '/') return MaterialPageRoute(builder: (_) => HomePage());
      return MaterialPageRoute(builder: (_) => UnknownPage()); // you can do this in `onUnknownRoute` too
    },
  ),
);