Постоянно отправлять переменные из одного класса в другой - PullRequest
0 голосов
/ 10 октября 2018

У меня есть класс, где происходит соединение со 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;
  }

1 Ответ

0 голосов
/ 10 октября 2018

В этом случае вы можете использовать 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...