流未在另一个流侦听功能中更新

时间:2019-06-16 11:47:32

标签: flutter dart

我有两个流,当第一个流中有新数据时,我想将数据放在第二个流中。

我有我的类A,在构造函数中,我将整数1放入流a中,并收听此流,当有新数据时,我将整数4放入流{{1}中}。

b

使用该流的小部件:

class A {
  Stream<int> a = BehaviorSubject<int>();
  Stream<int> b = BehaviorSubject<int>();

  A() {
    a = getDataA();

    a.listen((data) {
      b = getDataB();
    });
  }

  getDataA() {
    var _tmp = BehaviorSubject<int>();
    _tmp.add(1);
    return _tmp.stream;
  }

  getDataB() {
    var _tmp = BehaviorSubject<int>();
    _tmp.add(4);
    return _tmp.stream;
  }
}

窗口小部件显示-1,而不是4。

1 个答案:

答案 0 :(得分:1)

您实际上并不是在更新流,而是每次都创建一个新流。

相反,请这样做:

class A {
  Stream<int> a = BehaviorSubject<int>();
  Stream<int> b = BehaviorSubject<int>();

  A() {
     a.listen((data) {
       b.sink.add(data);
     });
  }
}