在Flutter应用程序中,我有一个MaterialApp,里面有命名路线列表,底部导航栏只有几个选项卡。在其中一个选项卡上,我有带有此代码的按钮点击
Navigator.of(context).pushReplacementNamed(MyRouteName);
由于某些原因,目标屏幕被加载了几次(可以在屏幕上看到(,它的initState()
方法也被调用了至少两次。为什么会发生这种情况,该怎么办?
我也遇到过同样的问题,我通过返回Navigator.of(上下文(来解决它。pop实际上,解决方案可能会因您作为路由的状态而异。我建议你尝试其他方法。
请改用
Navigator.of(context).pushNamedAndRemoveUntil(MyRouteName,(Route<dynamic> route) => false);