Navigator pushReplacementNamed在Flutter应用程序中两次加载屏幕



在Flutter应用程序中,我有一个MaterialApp,里面有命名路线列表,底部导航栏只有几个选项卡。在其中一个选项卡上,我有带有此代码的按钮点击

Navigator.of(context).pushReplacementNamed(MyRouteName);

由于某些原因,目标屏幕被加载了几次(可以在屏幕上看到(,它的initState()方法也被调用了至少两次。为什么会发生这种情况,该怎么办?

我也遇到过同样的问题,我通过返回Navigator.of(上下文(来解决它。pop实际上,解决方案可能会因您作为路由的状态而异。我建议你尝试其他方法。

请改用

Navigator.of(context).pushNamedAndRemoveUntil(MyRouteName,(Route<dynamic> route) => false);

最新更新