簡體   English   中英

制作流構建器 stream:一個變量會破壞 stream 構建器

[英]Making the streambuilder stream: a variable breaks stream builder

我正在嘗試制作一個可以查詢我的 firestore 數據庫並返回結果的搜索欄。

我有一個看起來像這樣的 stream 構建器:

StreamBuilder(
        //query to firestore db
        stream:  streamQuery,
        //builds widget for loading and compleation
        builder: (BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot) {...

引發此錯誤:

無法推斷類型參數“T”。

Tried to infer 'dynamic' for 'T' which doesn't work:
  Parameter 'builder' declared as     'Widget Function(BuildContext, AsyncSnapshot<T>)'
                      but argument is 'Widget Function(BuildContext, AsyncSnapshot<QuerySnapshot<Object?>>)'.
The type 'dynamic' was inferred from:
  Parameter 'stream' declared as     'Stream<T>?'
                     but argument is 'Stream<dynamic>'.

Consider passing explicit type argument(s) to the generic.

奇怪的是,如果我用這個替換stream:

db
        .collection('GearLockerItems')
        .where('itemName', isGreaterThanOrEqualTo: searchKey)
        .where('itemName', isLessThan: '${searchKey}z')
        .where('communityShare', isEqualTo: true)
        .where('reviewed', isEqualTo: true)
        .snapshots();

然后它工作。 將該firestore stream 保存到變量中會破壞事情。 作為參考,我正在嘗試關注這個 Stack Overflow 問題:

https://stackoverflow.com/a/60873879/522607

我必須將StreamBuilder<dynamic>添加到 Stream Builder:

body: StreamBuilder<dynamic>(
        stream: streamQuery,
        builder: (BuildContext context, AsyncSnapshot<dynamic> snapshot) {...

暫無
暫無

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

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