flutter - 将变量从一个类连续发送到另一个类

标签 flutter

我有一个类(class),其中发生了与 Strophe 的连接,并且我不断收到传入的消息。我希望每次有新消息到达时,都会将其发送到生成聊天界面以在屏幕上显示消息的其他类。但我不知道该怎么做。

这是接收消息的函数。我想要的是在每次有新消息到达时向另一个类发送 message

onMessage(xml.XmlElement msg) {
    var to = msg.getAttribute('to');
    var from = msg.getAttribute('from');
    var type = msg.getAttribute('type');
    List<xml.XmlElement> body = msg.findElements('body').toList();

    var now = new DateTime.now();

    NewMessage message = NewMessage();
    message.from = from;
    message.fecha = now.toString();
    message.body = body.map((node) => node.text).elementAt(0);
    message.read = false;

    // we must return true to keep the handler alive.
    // returning false would remove it after it finishes.

    return true;
  }

最佳答案

在这种情况下你可以使用 Stream

简单示例:

import 'dart:async';

void main() {
  //
  // Initialize a "Single-Subscription" Stream controller
  //
  final StreamController ctrl = StreamController();

  //
  // Initialize a single listener which simply prints the data
  // as soon as it receives it
  //
  final StreamSubscription subscription = ctrl.stream.listen((data) => print('$data'));

  //
  // We here add the data that will flow inside the stream
  //
  ctrl.sink.add('my name');
  ctrl.sink.add(1234);
  ctrl.sink.add({'a': 'element A', 'b': 'element B'});
  ctrl.sink.add(123.45);

  //
  // We release the StreamController
  //
  ctrl.close();
}

BLoC 模式最适合您。 BLoC Pattern

关于flutter - 将变量从一个类连续发送到另一个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52732562/

相关文章:

dart - 如何使用异步/HTTP 数据返回 IndexedWidgetBuilder 中的子小部件?

Flutter - 更改步进器 - 步进颜色

mobile - 如何在 Flutter 中使页面背景半透明以显示上一屏幕?

flutter - 如何在 flutter 朔迷离中实现17主机与agora io?

unit-testing - Flutter/Dart 在单元测试中等待几秒钟

flutter - Dart 中的 int 类型是值类型还是引用类型?

使用 TextEditingController 设置初始值后,Flutter 在 TextField 中编辑值

listview - Flutter:ListViews 和其他 Scrollables 如何确定它们的大小?

dart - GestureDetector onTap 卡片

android - VS Code 中没有设备 - Flutter