抛出另一个异常: 'package:flutter/src/widgets/navigator.dart': 断言失败: line 3803 pos 12: '_history.isNotEmpty': is not true

Tan*_*bal 12 flutter

我在我的应用程序中使用了permanent_bottom_nav_bar 库。当我使用导航器显示新屏幕时,会显示错误。

InkWell(
    onTap: () {
      Navigator.of(context).popUntil(ModalRoute.withName("previousjob"));
      Navigator.of(context).pushAndRemoveUntil(
        CupertinoPageRoute(
          builder: (BuildContext context) {
            return SettingMenu();
          },
        ),
        (_) => true,
      );
    },
Run Code Online (Sandbox Code Playgroud)

Axe*_*nds 16

我在我的代码中解决了这个问题。我的问题是,在特定情况下我被称为 navigator pop 两次,从而导致了错误。


小智 6

这是我的第一个答案,所以可能不是很清楚。但据我了解,在遇到同样的问题时,您需要push先使用,然后才能实际使用pop.

您首先使用pop,因此您的历史记录中没有任何内容。

尝试:

    InkWell(
        onTap: () {
          Navigator.of(context).pushNameed(ModalRoute.withName("previousjob"));
          Navigator.of(context).pushAndRemoveUntil(
            CupertinoPageRoute(
              builder: (BuildContext context) {
                return SettingMenu();
              },
            ),
            (_) => true,
          );
        },
Run Code Online (Sandbox Code Playgroud)