flutter - 颤振类型'列表' 不是类型 'List 的子类型'
问题描述
我有这个小部件
StreamBuilder(
stream:
FirebaseFirestore.instance.collection('HouseDetails').snapshots(),
builder: (BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot) {
if (!snapshot.hasData) {
return Center(
child: CircularProgressIndicator(),
);
}
return Expanded(
child: ListView(
children: snapshot.data.docs.map<Widget>((document) {
return _buildHouse(context, document);
}).toList(),
physics: BouncingScrollPhysics(),
),
);
});
现在_buildHouse
构建一个具有 onTap 功能的基本屏幕。我正在QueryDocumentSnapshot
document
使用MaterialPageRoute
.
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (_) => DetailsScreen(house: document),
),
);
},
该行 builder: (_) => DetailsScreen(house: document),
抛出错误
The following _TypeError was thrown building DetailsScreen(dirty, state: _DetailsScreenState#cc47a):
I/flutter ( 5479): type 'List<dynamic>' is not a subtype of type 'List<String>'
I/flutter ( 5479): The relevant error-causing widget was:
I/flutter ( 5479): DetailsScreen
这里出了什么问题?
解决方案
我只需要.map<String>((e)=>e.toString()).toList()
在 DetailsScreen 类中使用类型的变量List<String>
。
推荐阅读
- javascript - 护照js中的完成功能如何工作?
- github - Github Action:[问题:关闭]时如何获取问题正文?
- sql-server - 无法从连接到本地 SQL 的 Azure 虚拟机刷新 Power BI
- c - 在 Cooja 模拟器中捕获和丢弃源和目标之间的数据包
- python - 带两个引号的字典
- android - 通过协程android使用FusedLocationProviderClient异步获取位置
- java - Java访问父变量返回null
- node.js - 使用 muller 存储的 MEAN 堆栈显示图像
- rust - 如何从 rust 闭包内部对变量进行变异
- huawei-mobile-services - 状态栏切换歌曲时音乐播放暂停怎么办