簡體   English   中英

如何將新數據添加到 Future<dynamic> 在 dart / flutter?</dynamic>

[英]How to add new data into Future<dynamic> in dart / flutter?

我正在使用Flutter / Dart在移動應用程序中開發聊天系統。

我已通過 API 從服務器獲取用戶的消息記錄,並收到結果為Future<dynamic> 此結果包含聊天數據列表。 如果我將它傳遞給FutureBuilder小部件。 它可以工作並在listTile中列出聊天記錄。 一切運作良好。

當用戶添加新的聊天消息時,我通過 API 將該文本消息發布到服務器以存儲到數據庫中。 它可以工作,響應狀態為 200,這意味着消息已添加到服務器的數據庫中。

我有新添加的聊天消息的實例,我想要 append / 將其添加到之前獲取的Future<dynamic>結果中。

請建議我該怎么做? 我們可以更新Future<dynamic>類型的數據嗎? 謝謝。

Future只能根據設計發出一項。 If you want to emit multiple items, use Stream : https://api.flutter.dev/flutter/dart-async/Stream-class.html

要了解如何生成流,請查看以下內容: https://dart.dev/articles/libraries/creating-streams

您最可能想要做的是使用rxdartBehaviorSubject或 dart 的StreamController (它們共享 api,所以只需替換名稱,除了ValueStream ,它是 rxdart 特有的,這個必須替換為Stream ):

class Api {
  final _subject = BehaviorSubject<DataToDisplay>();
  ValueStream<DataToDisplay> get data => _subject.stream;


  void fetchData() {
    final data = downloadDataFromSomewhere();
    _subject.add(data);
  }
}

然后只需創建一個類似於FutureBuilderStreamBuilder

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM