【发布时间】:2020-11-01 11:24:45
【问题描述】:
我有一个功能可以导航到带有路线设置的新页面
void pushWithSettings(
{@required BuildContext context, @required Widget newPage}) {
Navigator.push(
context,
MaterialPageRoute(
settings: RouteSettings(
name: newPage.toString(),
),
builder: (_) => newPage));
}
然后我使用
弹出到特定页面Navigator.popUntil(context, ModalRoute.withName(Page().toString));
这在调试模式下运行良好,但在配置文件和发布模式下它只弹出一次
上下文示例
import 'package:flutter/material.dart';
import 'package:flutter_app/main.dart';
class FirstPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Column(
children: <Widget>[
Center(child: Text("First Page"),),
RaisedButton(
onPressed: (){
pushWithSettings(context: context, newPage: SecondPage());
},
child: Text("Navigate to second", style: TextStyle(inherit: false)),
)
],
);
}
}
class SecondPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Column(
children: <Widget>[
Center(child: Text("Second Page"),),
RaisedButton(
onPressed: (){
pushWithSettings(context: context, newPage: ThirdPage());
},
child: Text("Navigate to third", style: TextStyle(inherit: false)),
)
],
);
}
}
class ThirdPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Center(child: Text("Third Page"),),
RaisedButton(
onPressed: (){
Navigator.popUntil(context, ModalRoute.withName(FirstPage().toString()));
},
child: Text("Navigate to first", style: TextStyle(inherit: false),),
)
],
);
}
}
在调试模式下,点击第三页中的按钮会导航到第一页,但在配置文件和发布模式下,点击按钮不会执行任何操作。 我目前在 stable 频道上运行 flutter 1.17.4
【问题讨论】:
-
也许 Page().toString() 在调试和发布中没有返回相同的结果。您可以尝试添加另一个字符串作为 routeName 吗?尝试使用一个简单的字符串,看看是否有效。
标签: flutter flutter-navigation release-mode