【发布时间】:2018-04-09 00:18:56
【问题描述】:
我想从NetworkImage(url) 加载一张图片。我正在从初始函数填充Future<String> images; 变量,现在我无法让我的 FutureBuilder 将其作为字符串读取。我在 url 上收到错误为“无法将参数类型 AsyncSnapshot 分配给参数类型字符串”这是我的代码...
Future<String> images;
Future<Null> getData() async {
FirebaseUser user = await FirebaseAuth.instance.currentUser;
user = await FirebaseAuth.instance.currentUser;
var userid = user.uid;
await fb.child('users/${userid}').onValue.listen((Event event) {
if (event.snapshot.value != null) {
name = event.snapshot.value['displayName'];
images = event.snapshot.value['image'];
} else {
name = "MyFavKPop";
}
});
}
new FutureBuilder<String>(
future: images, // a Future<String> or null
builder: (BuildContext context, AsyncSnapshot<String> snapshot) {
switch (snapshot.connectionState) {
case ConnectionState.none:
return new Text('Press button to start');
case ConnectionState.waiting: return new Text('Awaiting result...');
default:
if (snapshot.hasError)
return new Text('Error: ${snapshot.error}');
else
return new CircleAvatar(
backgroundImage: new NetworkImage(snapshot.data.toString()) // getting NetworkImageError ..looking for String not Future<String>,
radius: 75.0,
);
}
}),
【问题讨论】:
标签: async-await dart future flutter