引发了另一个异常:'package:flutter / src / widgets / navigator.dart':失败的断言:第3803行pos 12:'_history.isNotEmpty':不正确

时间:2020-06-08 11:07:30

标签: flutter

我在我的应用中使用了 persistent_bottom_nav_bar 库。当我使用导航器显示新屏幕时,将显示错误。

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

4 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

就我而言,这是因为我在调用 pop 后尝试调用 pushAndRemoveUntil。删除上述 pop 后,它工作正常。

答案 2 :(得分:0)

这是我的第一个答案,因此可能不太清楚。但是据我所知,在遇到相同问题的同时,您需要先使用push,然后才能实际使用pop

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

尝试:

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

答案 3 :(得分:0)

解决了!就我而言,我使用的是这个:

Navigator.of(context).pushReplacement(MaterialPageRoute())

我改成这样:

Navigator.push(context, MaterialPageRoute())