【发布时间】:2023-01-18 20:51:36
【问题描述】:
我正在尝试将函数返回的值打印到屏幕上。
功能: 计算.dart
Future<dynamic> getTotalCost(BuildContext context) async {
final user = Provider.of<Userr?>(context, listen: false);
double totalCost = 0.0;
QuerySnapshot snapshot = await FirebaseFirestore.instance
.collection('myOrders')
.doc(user?.uid)
.collection('items')
.get();
for (var doc in snapshot.docs) {
totalCost += doc["price"];
}
print(totalCost.toString());
return totalCost.toString();
}
但是它打印的不是 value ,而是 Future 的实例。
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
Text('Item total', style: textStyle),
Text('${ Provider.of<Calculations>(context, listen: false).getTotalCost(context).toString()}', style: textStyle),
],
),
我也知道这是因为函数是异步的,它返回未来对象而不是实际值。但是我需要知道如何更改上面的代码才能打印实际值。
【问题讨论】: