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