我一直在寻找在dart-angle应用程序中的组件之间发送消息的最佳方法是什么,我感到很困惑。我发现在旧版本中,我将使用ScopeAware,如以下问题所示:Angular Dart component events,但是现在将其替换为Streams。

在我看来,ScopeAware创建了一种“全局”方式来管理不直接相关的组件之间的事件,对吗?使用流,如何创建此上下文?

我有这段代码,可以处理“全局”事件:

class PostEvent {


  final StreamController<ComponentEvent> _onEventStream = new StreamController.broadcast();
  Stream<ComponentEvent> onEventStream = null;

  static final PostEvent _singleton = new PostEvent._internal();

  factory PostEvent() {
       return _singleton;
  }

  PostEvent._internal() {
       onEventStream = _onEventStream.stream;
  }

  onEvent(ComponentEvent event) {
    _onEventStream.add(event);
  }

}

在我的项目中,我具有以下组件结构:
Home
  -> Products
    -> Product Item
  -> Header
    -> Cart Products Count

添加或删除一种产品时,应通知“购物车计数”。在这种情况下,我的代码是个好主意吗?

谢谢!

最佳答案

使用流是一个好主意。
现在,使该类成为服务,在根注入(inject)器处提供它,然后将其注入(inject)到您希望获得有关更新的通知并在此订阅的位置。

有多个订阅者,您需要一个多播流。

10-06 02:27