【发布时间】:2020-03-03 06:48:50
【问题描述】:
我有一个 StreamBuilder 接受来自我的服务的流。它看起来像这样:
StreamBuilder(
stream: MyService.getStream$()
builder (...)
);
另外,我使用以下方法提供服务:
getStream$() {
print('being printed twice');
return Observable.just('text')
.doOnData(() => print('being printed twice too'));
}
当我运行应用程序时,我得到以下prints 被打印两次(每次)。
但是,当我将以下实现更改为变量时,它只运行一次:
Observable getStream = Observable
.just('text')
.doOnData((data) => print('being printed once');
当然,在上面的示例中,我会使用变量,但在我的原始代码中,我无法这样做,因为我依赖于实例属性。
我能做的是声明一个Observable 变量并在构造函数中将其设置为我想要的可观察对象。虽然,这个解决方案听起来像是一种解决方法,但我不确定为什么该方法会被触发两次。
有什么想法吗?
【问题讨论】:
标签: flutter rxdart stream-builder