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

最佳答案

它更多的是关于代码的可读性(但不仅限于此),请参见所有代码都在以不同的方式完成相同的工作:

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
    },
  ),
);

关于flutter - MaterialApp中的initialRoute和home之间的区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61764803/

10-12 03:47