无法读取 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.nameRouteSettings.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.