当尝试使用ExpansionPanelList/ExpansionPanel与(Firebase) stream时,Flutter出现错误

18 浏览
0 Comments

当尝试使用ExpansionPanelList/ExpansionPanel与(Firebase) stream时,Flutter出现错误

我有以下的代码片段:

  @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\' is not a subtype of type \'List\'

我在这里看到了一个解决办法:type \'List\' is not a subtype of type \'List\'

但当我这样做并在\"map\"后面添加时,我得到了一个不同的错误:

type \'List\' is not a subtype of type \'List\'

不知道如何解决这个问题...

admin 更改状态以发布 2023年5月23日
0
0 Comments

结果证明在这里用.map替换.map就能解决问题。

0
0 Comments

List 转换为特定类型的列表,可以执行以下操作:

List.from(...);

我不确定您的代码中哪个变量是 List,但将其包装在上述语句中应该将其转换为正确的类型(如果不是所有项目都是 ExpansionPanel 实例,则会失败)。

0