我有这样的情况。
当尝试通过异步功能设置颜色时,它将无法正常工作
Future<Color> _getColor(id) async {
Color myColor;
myColor = await helper.queryColor(id);
return myColor;
}
for(int i=0;i<list.length;i++) {
Container(
color: await _getColor(list.id);
)}
但是显示错误不能将参数类型“ Future”分配给参数类型“ Color”。
答案 0 :(得分:0)
由于_getColor被定义为Future / Async函数,因此您需要将其称为等待功能。
for(int i=0;i<list.length;i++) {
Container(
color: await _getColor(list.id),
);
}
答案 1 :(得分:0)
最后,我可以在 Future Builder
的帮助下实现我想要的目标 child: FutureBuilder<Color>(
future: _getColor(message[i].sId), //This function return color from Sqlite DB Asynchronously
builder: (BuildContext context, AsyncSnapshot<Color> snapshot) {
if (snapshot.hasData) {
return Card(color: snapshot.data);
}
else
return CupertinoActivityIndicator();
});