大家好,我正在使用BLoC for app我正在开发但是有些情况我无能为力,就像你登录时激活API调用并自然等待结果我会发送加载状态和显示加载器但是在那之后完成如何处理例如导航到不同的屏幕.我现在有类似的东西
typedef void LoginSuccessCallback();
class LoginBloc(){
LoginBloc(Api this.api,LoginSuccessCallback loginSuccesCallback){
_login.switchMap((ev) => api.login(ev.payload.email,ev.payload.password)).listen((_) => loginSuccessCallback);
}
}
Run Code Online (Sandbox Code Playgroud)
但我确信有更清洁的方法来处理这个我试图搜索一些类似但却找不到任何东西的样本.
在Flutter中,当流的值更改时如何调用Navigator.push?我已经尝试了下面的代码,但出现错误。
StreamBuilder(
stream: bloc.streamValue,
builder: (BuildContext context, AsyncSnapshot<int> snapshot) {
if (snapshot.hasData && snapshot.data == 1) {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => SomeNewScreen()),
);
}
return Text("");
});
Run Code Online (Sandbox Code Playgroud)
我是Flutter的新手,我试图完成一件简单的事情:我想使用BLoC模式和流创建注册功能。
对于UI部分,我有一个stepper,在最后一步应使用收集的数据向服务器发出请求。
我相信在StreamBuilder之前,所有工作都可以进行。StreamBuilders旨在返回小部件,但是,在我的情况下,我不需要返回任何小部件,如果成功,我想导航到下一个屏幕,否则将在ModalBottomSheet中显示错误。
StreamBuilder抱怨没有小部件返回。
在View端还可以使用其他方法来处理流中的事件吗?
还是有解决这个问题的更好方法?