【发布时间】:2020-04-22 13:55:28
【问题描述】:
我正在使用 Flutter 开发网站。除了重新加载页面外,Flutter 一切正常。当我按下浏览器中的刷新按钮时,整个网络应用程序都会重新加载。
例如,如果我从初始页面导航到四个页面,当我从第四个页面按下刷新按钮时,初始页面会被加载,我必须再次手动浏览到第四个页面.
有没有办法在 Flutter 中加载当前活动页面?
【问题讨论】:
标签: web flutter dart flutter-web
我正在使用 Flutter 开发网站。除了重新加载页面外,Flutter 一切正常。当我按下浏览器中的刷新按钮时,整个网络应用程序都会重新加载。
例如,如果我从初始页面导航到四个页面,当我从第四个页面按下刷新按钮时,初始页面会被加载,我必须再次手动浏览到第四个页面.
有没有办法在 Flutter 中加载当前活动页面?
【问题讨论】:
标签: web flutter dart flutter-web
或者你可以使用它,因为它会原生刷新整个窗口
import 'dart:html' as html;
html.window.location.reload();
【讨论】:
使用 named routes 查看导航,因为它在使用 Flutter Web 时无缝映射 URL。
编辑:如果您需要 URL 参数(如 id、令牌...),请查看 this article。
【讨论】:
使用导航器推送到同一页面。 。IE。 如果 CurrentPage() 是您需要刷新的页面,则使用:
Navigator.of(context).push(MaterialPageRoute(builder: (BuildContext context) => CurrentPage()));
这将重新加载页面。
【讨论】:
将 'dart:html' 导入为 html;
html.window.location.reload();
因为这是不允许的
https://dart-lang.github.io/linter/lints/avoid_web_libraries_in_flutter.html
这就是我解决问题的方法:
导入这个包
https://pub.dev/packages/universal_html/install
导入任何你想使用的地方
将 'package:universal_html/html.dart' 导入为 html;
你可以这样使用它
html.window.location.reload();
【讨论】: