我想在代码中使用字符串值,但无法这样做。请帮助,我是新来的。
// Database (db) is database sqlite
// Dog class has a String field name
Text func() async{
var dog = await db.firstDog();
return Text(dog.name);
}
根据方法Text
的定义,返回类型Text
不是func.dart(return_of_invalid_type)
。
答案 0 :(得分:1)
使用未来
示例
Future<Text> func() async{
String d = await getTest();
return Text(d);
}
答案 1 :(得分:0)
在介质上选中此article。您可以得到很好的理解。
对于异步函数,应使用Future
类来返回值。
Future<String> asyncFunc() async {
d = await db.firstDog();
return d.name;
}
然后使用此字符串设置TextView
的文本
答案 2 :(得分:0)
先决条件
您可以做什么
Text
作为Widget
,而只需返回Future<String>
Future<String> func() async {
var dog = await db.firstDog();
return dog.name;
}
Database db = new Database();
String _dogName;
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Text(_dogName),
),
);
}
void func() async {
setState(() async {
var dog = await db.firstDog();
_dogName = dog.name;
});
}