![](/img/trans.png)
[英]error: The argument type 'StreamTransformer<dynamic, dynamic>' can't be assigned to the parameter type 'StreamTransformer<QuerySnapshot*, List<Todo>>
[英]The argument type 'Stream<dynamic>?' can't be assigned to the parameter type 'Stream<QuerySnapshot>?'
我正在嘗試使用 StreamBuilder 顯示來自 firestore 數據庫的 stream 文本消息。 但是由於某種原因,無法將 Stream 的參數類型分配給Querysnapshot
的參數。 如果我擺脫Querysnapshot
stream 構建器不再顯示錯誤,但隨后我收到錯誤:
沒有為“對象”類型定義吸氣劑“文檔”
誰能幫我解決這個問題?
Widget ChatMessageList() {
return StreamBuilder(
stream: chatMessagesStream,
builder: (context, snapshot) {
return ListView.builder(
itemCount: snapshot.data!.documents.length,
itemBuilder: (context, index) {
return MessageTile(snapshot.data!.documents[index].data['message']);
},
);
},
);
}
出現這種信息是因為dart不知道object snapshot.data
是什么樣的。 您可能需要指定將從 stream 返回的預期類型。chatMessagesStream 返回什么? 如果是Stream<Bar>
,那么寫(context, AsyncSnapshot<Bar> snapshot)
,就像官方例子中的StreamBuilder
此外,您不應從小部件直接調用 firebase。 這將創建大量復制粘貼和混亂的代碼。 您可以在這里找到一個更簡潔的架構示例: real-time-updates-with-streambuilder
設置它會有點額外的工作,但它肯定會很快得到回報,因為您在代碼中包含更多調用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.