无法读取 popUntil 路由中传递的 RouteSettings - 仅在 Release/Profile 中存在问题
Unable to read passed RouteSettings inside popUntil routes - Issue only in Release/Profile
这看起来可能与
重复
但事实并非如此。
上述问题解决了路由名称不匹配的问题,但在我的情况下,RouteSettings 始终为 null。
仅针对 Android 且仅针对 Release/Profile 版本发布
// Pushing the route
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) {
return ScreenA();
},
settings: RouteSettings(name: "screenA"),
),
);
// Popping until pushed route
Navigator.of(context).popUntil((route) {
print(route.settings.name);
// Here name and arguments are always null
return route.settings.name == 'screenA';
});
更新
还尝试使用 pushNamed
指定路线和 onGenerateRoute
方法。 RouteSettings.name
和 RouteSettings.arguments
始终为空。
颤振 1.22.5
我在对话框中调用 popUntil
。像下面的例子,
await showDialog(
context: context,
builder: (context) {
return Dialog(
child: Container(
child: RaisedButton(
onPressed: () {
Navigator.of(context).popUntil((route) {
return route.settings.name == 'screenA';
});
},
),
),
);
},
);
问题是由于 await
,删除它完全没问题。如果在 showDialog
RouteSettings.name
到来之前使用 await null
.
这看起来可能与
重复但事实并非如此。
上述问题解决了路由名称不匹配的问题,但在我的情况下,RouteSettings 始终为 null。
仅针对 Android 且仅针对 Release/Profile 版本发布
// Pushing the route
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) {
return ScreenA();
},
settings: RouteSettings(name: "screenA"),
),
);
// Popping until pushed route
Navigator.of(context).popUntil((route) {
print(route.settings.name);
// Here name and arguments are always null
return route.settings.name == 'screenA';
});
更新
还尝试使用 pushNamed
指定路线和 onGenerateRoute
方法。 RouteSettings.name
和 RouteSettings.arguments
始终为空。
颤振 1.22.5
我在对话框中调用 popUntil
。像下面的例子,
await showDialog(
context: context,
builder: (context) {
return Dialog(
child: Container(
child: RaisedButton(
onPressed: () {
Navigator.of(context).popUntil((route) {
return route.settings.name == 'screenA';
});
},
),
),
);
},
);
问题是由于 await
,删除它完全没问题。如果在 showDialog
RouteSettings.name
到来之前使用 await null
.