类型“Future<dynamic>”不是类型转换中“List<Profile>”类型的子类型
Posted
技术标签:
【中文标题】类型“Future<dynamic>”不是类型转换中“List<Profile>”类型的子类型【英文标题】:type 'Future<dynamic>' is not a subtype of type 'List<Profile>' in type cast 【发布时间】:2020-09-10 08:49:59 【问题描述】:List<Profile> demoProfiles = getdata() as List<Profile>;
Future getdata() async
List<Profile> list=[];
list = await Firestore.instance
.collection("users").getDocuments().then((querySnapshot)
querySnapshot.documents.forEach((document)
list.add( Profile(
photos: [document['photoUrl'],],
name: document['nickname'],
age: 2,
distance: 2,
education: document['photoUrl']
));
);
return list;
);
class _MainControllerState extends State<MainController>
final MatchEngine matchEngine = MatchEngine (
matches:demoProfiles.map((Profile profile) => Match(profile: profile)).toList()
);
@override
Widget build(BuildContext context)
return Container(
padding: EdgeInsets.fromLTRB(0.0, 60.0, 0.0, 30.0),
child: CardStack (
matchEngine: matchEngine
),
);
当我运行我的代码时,它返回错误:type 'Future' is not a subtype of type 'List' in type cast。 我该如何解决?在我从 Firebase 获取数据之前,它是 matchEngine 运行的吗? 我尝试将 await 添加到 List demoProfiles = getdata() as await List; 但它返回错误。我对颤振真的很陌生,这个问题整天都在困扰着我。请帮帮我
【问题讨论】:
这能回答你的问题吗? type 'Future<dynamic>' is not a subtype of type 'List<Profile> 还没有,我还在琢磨怎么做 【参考方案1】:创建一个FutureBuilder
小部件,并将getdata()
方法分配给future
属性。
Future getdata() async
List<Profile> list=[];
list = await Firestore.instance
.collection("users").getDocuments().then((querySnapshot)
querySnapshot.documents.forEach((document)
list.add( Profile(
photos: [document['photoUrl'],],
name: document['nickname'],
age: 2,
distance: 2,
education: document['photoUrl']
));
);
return list;
);
FutureBuilder(
future: getdata(),
builder: (context, AsyncSnapshot<QuerySnapshot> snapshot)
if (snapshot.connectionState == ConnectionState.done)
//...
【讨论】:
我应该在哪里使用 FutureBuilder? 使用FutureBuilder
而不是 CardStack ( matchEngine: matchEngine ),
,然后在 ConnectionState.done
中使用 CardStack
谢谢你的帮助,我现在试试
我刚刚尝试添加future builder,但是它返回了一些错误,我更新了一些错误截图,如果你有时间请看一下。以上是关于类型“Future<dynamic>”不是类型转换中“List<Profile>”类型的子类型的主要内容,如果未能解决你的问题,请参考以下文章
类型 'Future<dynamic>' 不是 Flutter 数据库创建中的“Future<int>”类型异常的子类型
错误:类型“Future<dynamic>”不是“List<dynamic>”类型的子类型。扑
颤振类型错误future <dynamic> 不是future <bool> 类型的子类型
参数类型“Iterable<Future<dynamic>>”不能分配给参数类型“Iterable<Future<news_item>>”