我的问题是关于与集团模式一起使用的导航。
在我的LoginScreen小部件中,我有一个按钮,可以将事件添加到集团的EventSink中。 bloc调用API并验证用户身份。问题是在LoginScreen Widget中我必须监听流,以及在返回成功状态后如何导航到另一个屏幕。
希望我清楚自己。谢谢!
使用BlockListener。
BlocListener(
bloc: _yourBloc,
listener: (BuildContext context, YourState state) {
if(state is NavigateToSecondScreen){
Navigator.of(context).push(MaterialPageRoute(builder: (BuildContext context) {return SecondScreen();}));
}
},
child: childWidget
)
这样的事情:
if (state is PhoneLoginCodeSent) {
// dispatch here to reset PhoneLoginFormState
SchedulerBinding.instance.addPostFrameCallback((_) {
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) {
return VerifyCodeForm(phoneLoginBloc: _phoneLoginBloc);
},
),
);
return;
});
}