尝试将 ExpansionPanelList/ExpansionPanel 与(Firebase)流一起使用时出现颤振错误
Posted
技术标签:
【中文标题】尝试将 ExpansionPanelList/ExpansionPanel 与(Firebase)流一起使用时出现颤振错误【英文标题】:Flutter error when trying to use ExpansionPanelList/ExpansionPanel with (Firebase) stream 【发布时间】:2020-07-02 08:56:34 【问题描述】:我有以下代码sn-p:
@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>'
不知道如何解决这个问题...
【问题讨论】:
【参考方案1】:要将List<dynamic>
转换为特定类型的列表,您可以这样做:
List<ExpansionPanel>.from(...);
我不确定您的代码中的哪个变量是List<dynamic>
,但是将其包装在上述语句中应该会将其转换为正确的类型(如果不是所有项目都是ExpansionPanel
实例,当然会失败) .
【讨论】:
【参考方案2】:原来用.map<ExpansionPanel>
替换.map
在这里起到了作用。
【讨论】:
以上是关于尝试将 ExpansionPanelList/ExpansionPanel 与(Firebase)流一起使用时出现颤振错误的主要内容,如果未能解决你的问题,请参考以下文章
尝试从 UIViewController 将属性分配给 UIScrollView 类
尝试将数据从子活动返回到 MainActivity 时获取 NullPointerException