【发布时间】:2021-10-04 10:08:23
【问题描述】:
我的 Flutter 应用中的 StreamBuilder 存在 null 安全问题。
在构建器的左括号“{”上:属性我收到此错误 主体可能正常完成,导致返回“null”,但返回类型可能是不可为空的类型。
这是 StreamBuilder 的代码。
StreamBuilder (
stream: _db.collection('agency').doc(globals.agencyId).
collection('trxns').doc(globals.currentTrxnId).snapshots(),
builder: (BuildContext context, AsyncSnapshot trxnSnapshot) {
if (trxnSnapshot.hasData) {
var outPut = (trxnSnapshot.data() as QueryDocumentSnapshot);
clientFNameController.text = trxnSnapshot.data.data['clientFName'] ?? "";
}
),
我尝试添加这样的类型:StreamBuilder (
但我收到此错误:无法将参数类型“Stream
现在我更改类型以匹配上面的语句,现在我回到原来的错误消息。这是我将类型更改为的内容。
StreamBuilder <DocumentSnapshot<Map<String, dynamic>>>(
stream: _db.collection('agency').doc(globals.agencyId).
collection('trxns').doc(globals.currentTrxnId).snapshots(),
builder: (BuildContext context, AsyncSnapshot trxnSnapshot) {
if (trxnSnapshot.hasData) {
var outPut = (trxnSnapshot.data() as QueryDocumentSnapshot);
clientFNameController.text = trxnSnapshot.data.data['clientFName'] ?? "";
}
),
我不知道出了什么问题或如何解决它。我知道我需要这个“!”或这个 ”?”但我不知道该放哪一个或放在哪里。
我真的很感激这里的一些帮助。
【问题讨论】:
标签: flutter stream-builder dart-null-safety