【发布时间】:2019-11-22 07:51:19
【问题描述】:
我正在尝试使用函数返回一个字符串,但我不断收到 '必须向文本小部件提供非空字符串。 'package:flutter/src/widgets/text.dart': 断言失败:第 269 行 pos 10: 'data != null''
这是我的字符串函数:
test<String>(String callsign) {
Firestore.instance
.collection('Manning')
.getDocuments()
.then((QuerySnapshot snapshot) {
snapshot.documents.forEach((f) {
if (f.data.containsKey('Paramedic') && f.documentID == callsign) {
return f.data['Paramedic'];
} else if (f.data.containsKey('Medic') && f.documentID == callsign) {
return f.data['Medic'];
} else if (f.data.containsKey('Driver') && f.documentID == callsign) {
return f.data['Driver'];
} else if (f.data.containsKey('Attachment') &&
f.documentID == callsign) {
return f.data['Attachment'];
}
});
});
}
我尝试返回一个 Future,但它不能放在 Text 小部件中。
【问题讨论】:
-
欢迎来到异步编程的世界。您将需要一个 FutureBuilder 那里。
-
或者在你的有状态小部件中定义一个字符串参数,使用
setState在上面显示的函数中设置它的值,并检查它在build中的值以返回一个Text小部件或一个如果您还没有字符串值,则为占位符。