firebase - 访问数据时 _buildStoryPage( Mapdata,bool active) 其显示错误图不是ty'地图'
问题描述
在访问数据 _buildStoryPage( Map<String, dynamic> data,bool active) 时,它显示的错误类型 '() => Map<String, dynamic>' 在 cloudfirestore 库升级之前不是类型 'Map<String, dynamic>' 的子类型它工作正常。
code here
StreamBuilder(
stream: slides,
initialData: [],
builder: (BuildContext context, AsyncSnapshot snap){
List slideList=snap.data.toList();
return PageView.builder(
controller: ctrl,
itemCount: slideList.length+1,
itemBuilder:(context,int currentIndex){
if(currentIndex==0){
return _buildTagPage();
}
else if (slideList.length>=currentIndex){
bool active=currentIndex==currentPage;
//error at this line
return _buildStoryPage(slideList[currentIndex-1],active);
}
return Loader();
}
);
},
),
Stream _queryDb({String tag="New"}){
Query query=db.collection('Stories').where("tag",arrayContains: tag);
slides =query.snapshots().map((list)=>list.docs.map((d)=>d.data));
setState(() {
activeTag=tag;
});
}
_buildStoryPage( Map<String, dynamic> data,bool active){
// while providing the value to _buildStoryPage(slideList[currentIndex-1],active) its error
//type '() => Map<String, dynamic>' is not a subtype of type 'Map<String, dynamic>'
}
解决方案
这是一个函数:
Map<String, dynamic> data() {
return slideList[currentIndex-1];
}
在您的代码中,您通过函数名称调用它并且不运行它:
_buildStoryPage( Map<String, dynamic> data,bool active){
您需要运行该函数以获得预期的结果:
_buildStoryPage( Map<String, dynamic> data(),bool active){
推荐阅读
- ruby-on-rails - docker run 后 Docker 中的 Ruby-Rails 退出
- laravel - Laravel 中禁用输入字段的完整性约束违规
- javascript - 使用 vanilla js 脚本模拟更改事件以将文本输入到 react textarea 中
- javascript - 无法创建 RTCDataChannel
- angular - 如何减少 Angular 中 main.js(初始加载)的包大小?
- winapi - 我是否需要调用 SelectObject() 来恢复使用 GetStockObject() 检索的对象?
- python-3.x - OpenMDAO 和 NSGA II
- python - 如何给分数分配分数,例如获胜得 3 分,平局得 1 分?
- excel - 循环速度提升
- python - NER 的 Transformer Pipeline 返回带有 ##s 的部分单词