我有以下代码段:
@override
Widget build(BuildContext context) {
return StreamBuilder(
stream: Accounts.getAccounts(widget.firebaseUser.uid),
builder: (BuildContext context, AsyncSnapshot snapshot) {
return ExpansionPanelList(
children: snapshot.data.documents
.map((account) => new ExpansionPanel(
headerBuilder: (BuildContext context, bool isExpanded) {
return ListTile(
title: Text("Some title"),
);
},
body: ListTile(
title: Text("Some text"),
)
)).toList(),
);
}
);
}
这给出了错误:
type 'List<dynamic>' is not a subtype of type 'List<ExpansionPanel>'
我在这里看到了一个解决方案:type 'List<dynamic>' is not a subtype of type 'List<Widget>'
但是当我在“地图”之后添加<Widget>
时,出现了另一个错误:
type 'List<dynamic>' is not a subtype of type 'List<ExpansionPanel>'
不知道如何解决此问题...
答案 0 :(得分:1)
要将List<dynamic>
转换为特定类型的列表,可以执行以下操作:
List<ExpansionPanel>.from(...);
我不确定您代码中的哪个变量是List<dynamic>
,但是将其包装在上面的语句中应将其转换为正确的类型(如果不是所有项都为{{1 }}实例。
答案 1 :(得分:0)
原来,用.map
替换.map<ExpansionPanel>
可以解决问题。