[英]how to transform a Future<dynamic> to string in dart:flutter
[英]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
您最可能想要做的是使用rxdart
的BehaviorSubject
或 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);
}
}
然后只需創建一個類似於FutureBuilder
的StreamBuilder
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.