【问题标题】:Flutter: Hot reload and RoutesFlutter:热重载和路由
【发布时间】:2019-04-04 15:28:06
【问题描述】:

我注意到当我扩展 MaterialPageRoutes 然后像这样实例化它们时

class Route extends MaterialPageRoute {
  Route(): super(
    builder: (context) {
      return SomeWidget();
    }
  );
}
...somewhere in the build method of another class...
Navigator.push(context, Route())

热重载不会像我那样重建路由的内容

...somewhere in the build method of another class...
Navigator.push(context, MaterialPageRoute(
  builder: (context) {
    return SomeWidget();
  }
))

class Route extends MaterialPageRoute {
  Route(): super(
    builder: (context) {
      return RouteWidget();
    }
  );
}
class RouteWidget extends StatelessWidget {
  Widget build(BuildContext context) {
    return SomeWidget();
  }
}
...somewhere in the build method of another class...
Navigator.push(context, Route())

我发现最后一个变通办法奏效特别奇怪。知道我错过了什么吗?文档说热重载将重建所有小部件。

【问题讨论】:

  • 感谢您的参考。这是否适用于每个对象,还是仅适用于 runApp() 的第一个对象?因为如果是后者,那这不是我的原因。
  • 它对build 返回的的任何内容都进行计数。所以路线,覆盖,...
  • 好的,谢谢!不要忘记发布您的 cmets 作为答案,以便我可以标记它,如果您关心的话。

标签: routes dart flutter hot-reload


【解决方案1】:

热重载应用代码更改并重新运行build(),以便更新视图。要重新加载路由,需要热重启。

有关热重载的更多详细信息,请参阅:https://flutter.io/docs/development/tools/hot-reload

【讨论】:

    猜你喜欢
    • 2021-06-17
    • 1970-01-01
    • 2020-02-23
    • 1970-01-01
    • 2022-01-16
    • 2020-02-08
    • 2018-10-06
    • 2019-07-30
    相关资源
    最近更新 更多