我是Flutter的新手,我试图完成一件简单的事情:我想使用BLoC模式和流创建注册功能。
对于UI部分,我有一个stepper,在最后一步应使用收集的数据向服务器发出请求。
我相信直到StreamBuilder之前,我都可以工作。StreamBuilders用于返回小部件,但是,在我的情况下,我不需要返回任何小部件,如果成功,我想导航到下一个屏幕,否则将在ModalBottomSheet中显示错误。 StreamBuilder抱怨没有小部件返回。
在View端还可以使用其他方法来处理流中的事件吗?
还是有解决这个问题的更好方法?
如果您不需要渲染任何东西,请不要使用StreamBuilder。 StreamBuilder是用于显示内容的帮助小部件Stream。
StreamBuilder
Stream
您想要的是不同的。因此,您可以简单地Stream手动听。
将执行以下操作:
class Foo<T> extends StatefulWidget { Stream<T> stream; Foo({this.stream}); @override _FooState createState() => _FooState<T>(); } class _FooState<T> extends State<Foo<T>> { StreamSubscription streamSubscription; @override void initState() { streamSubscription = widget.stream.listen(onNewValue); super.initState(); } void onNewValue(T event) { Navigator.of(context).pushNamed("my/new/route"); } @override void dispose() { streamSubscription.cancel(); super.dispose(); } @override Widget build(BuildContext context) { return Container(); } }