【发布时间】:2020-05-13 10:37:05
【问题描述】:
鉴于我已经在我的颤振应用程序的 MaterialApp 中声明了我的路线,现在我正在使用
Navigator.pushNamed(context,ScreenA);
现在在某些用户事件上,我需要打开 ScreenA,但前提是 ScreenA 不存在,否则只需更新该 ScreenA 中的参数。
【问题讨论】:
标签: flutter flutter-navigation
鉴于我已经在我的颤振应用程序的 MaterialApp 中声明了我的路线,现在我正在使用
Navigator.pushNamed(context,ScreenA);
现在在某些用户事件上,我需要打开 ScreenA,但前提是 ScreenA 不存在,否则只需更新该 ScreenA 中的参数。
【问题讨论】:
标签: flutter flutter-navigation
看看this。您可以等待从屏幕 A 打开的所有页面的结果,并在您弹回屏幕 A 后使用从这些页面返回的值
【讨论】:
您可以检查当前的顶部屏幕并设置您的条件,如下所示,
final newRouteName = "/NewRoute"; // Here add your route name
bool isNewRouteSameAsCurrent = false;
Navigator.popUntil(context, (route) {
if (route.settings.name == newRouteName) {
isNewRouteSameAsCurrent = true;
}
return true;
});
if (!isNewRouteSameAsCurrent) {
Navigator.pushNamed(context, newRouteName);
}
【讨论】: