Flutter 导致颤振模糊的Bloclistener

Flutter 导致颤振模糊的Bloclistener,flutter,dart,navigation,state,bloc,Flutter,Dart,Navigation,State,Bloc,我有9个屏幕,我使用字段从用户输入填写表单。我使用bloc进行状态管理。问题在于导航。我正在使用bloc listener的导航。当我从屏幕1移动到屏幕2并向后移动时,一切都正常。 从屏幕2到屏幕3,再回到屏幕上,一切正常。 从屏幕3到4导航正常,但当我单击后退时,许多导航屏幕会弹出,如屏幕2,当我按后退按钮2次时,屏幕3会弹出,然后屏幕1会弹出后退按钮。 这种行为一直持续到我到达最后一个屏幕并删除所有以前的屏幕。当我使用bloc listener导航时,我的应用程序也变得非常慢。我不知道这是什

我有9个屏幕,我使用字段从用户输入填写表单。我使用bloc进行状态管理。问题在于导航。我正在使用bloc listener的导航。当我从屏幕1移动到屏幕2并向后移动时,一切都正常。 从屏幕2到屏幕3,再回到屏幕上,一切正常。 从屏幕3到4导航正常,但当我单击后退时,许多导航屏幕会弹出,如屏幕2,当我按后退按钮2次时,屏幕3会弹出,然后屏幕1会弹出后退按钮。 这种行为一直持续到我到达最后一个屏幕并删除所有以前的屏幕。当我使用bloc listener导航时,我的应用程序也变得非常慢。我不知道这是什么行为

第1屏区

BlocListener<JobBloc, JobState>(
      listener: (context, state) {
        if (state is JobSuccessfulState)
          widget.edit == true
              ? Navigator.pushAndRemoveUntil<dynamic>(
                  context,
                  MaterialPageRoute<dynamic>(
                    builder: (BuildContext context) =>
                        JobPostScreen8(state.data),
                  ),
                  (route) =>
                      false, //if you want to disable back feature set to false
                )
              : Navigator.of(context)
                  .push(MaterialPageRoute(builder: (_) => JobPostScreen2()));
      }, 
BlocListener(
侦听器:(上下文、状态){
如果(状态为JobSuccessfulState)
widget.edit==true
?Navigator.pushandremove直到(
上下文
材料路线(
生成器:(BuildContext上下文)=>
JobPostScreen8(state.data),
),
(路线)=>
false,//如果要禁用返回功能集,请将其设置为false
)
:Navigator.of(上下文)
.push(materialpage路径(生成器:()=>JobPostScreen2());
}, 
屏幕2

BlocListener<JobBloc, JobState>(
      listener: (context, state) {
        if (state is JobSuccessfulState)
          widget.edit == true
              ? Navigator.pushAndRemoveUntil<dynamic>(
                  context,
                  MaterialPageRoute<dynamic>(
                    builder: (BuildContext context) =>
                        JobPostScreen8(state.data),
                  ),
                  (route) =>
                      false, //if you want to disable back feature set to false
                )
              : Navigator.of(context)
                  .push(MaterialPageRoute(builder: (_) => JobPostScreen3()));
      },
BlocListener(
侦听器:(上下文、状态){
如果(状态为JobSuccessfulState)
widget.edit==true
?Navigator.pushandremove直到(
上下文
材料路线(
生成器:(BuildContext上下文)=>
JobPostScreen8(state.data),
),
(路线)=>
false,//如果要禁用返回功能集,请将其设置为false
)
:Navigator.of(上下文)
.push(materialpage路径(生成器:()=>JobPostScreen3());
},
屏幕3

BlocListener<JobBloc, JobState>(
      listener: (context, state) {
        if (state is JobSuccessfulState)
          widget.edit == true
              ? Navigator.pushAndRemoveUntil<dynamic>(
                  context,
                  MaterialPageRoute<dynamic>(
                    builder: (BuildContext context) =>
                        JobPostScreen8(state.data),
                  ),
                  (route) =>
                      false, //if you want to disable back feature set to false
                )
              : Navigator.of(context)
                  .push(MaterialPageRoute(builder: (_) => JobPostScreen4()));
      },
BlocListener(
侦听器:(上下文、状态){
如果(状态为JobSuccessfulState)
widget.edit==true
?Navigator.pushandremove直到(
上下文
材料路线(
生成器:(BuildContext上下文)=>
JobPostScreen8(state.data),
),
(路线)=>
false,//如果要禁用返回功能集,请将其设置为false
)
:Navigator.of(上下文)
.push(materialpage路径(生成器:()=>JobPostScreen4());
},
。。。 在第7屏之前都是一样的

BlocListener<JobBloc, JobState>(
      listener: (context, state) {
        if (state is JobSuccessfulState)
          Navigator.pushAndRemoveUntil<dynamic>(
            context,
            MaterialPageRoute<dynamic>(
              builder: (BuildContext context) => JobPostScreen8(state.data),
            ),
                (route) =>
            false, //if you want to disable back feature set to false
          );
      },
BlocListener(
侦听器:(上下文、状态){
如果(状态为JobSuccessfulState)
Navigator.pushandremove直到(
上下文
材料路线(
生成器:(BuildContext上下文)=>JobPostScreen8(state.data),
),
(路线)=>
false,//如果要禁用返回功能集,请将其设置为false
);
},
有了这个,所有的导航堆栈都被移除了,我的应用程序运行得很顺利。请建议我使用bloc导航的更好方法