flutter - 将元素添加到列表
问题描述
我对 Flutter/Dart 中列表的使用感到困惑。
我有一个名为 PostMedia 的模型类:
class PostMedia {
String media_url;
bool es_foto;
bool es_video;
bool es_youtube;
PostMedia({this.media_url, this.es_foto, this.es_video, this.es_youtube});
factory PostMedia.fromJson(Map<String, dynamic> json) => PostMedia(
media_url: json['media_url'],
es_foto: json['es_foto'],
es_video: json['es_video'],
es_youtube: json['es_youtube']);
Map<String, dynamic> toJson() => {
"media_url": media_url,
"es_foto": es_foto,
"es_video": es_video,
"es_youtube": es_youtube
};
}
在应用程序屏幕上,我正在获取 Firestore 文档。每个文档都有一个名为 post_tiene_fotos 的布尔字段和用于媒体 url 的字符串字段,例如 foto1、foto2、foto3 等:
foto1= "https://mipagina.es/foto1r3424.jpg
foto2= "https://mipagina.es/foto5453535.jpg
foto3= "https://mipagina.es/foto98989.jpg
我将所有 Firestore 文档传递给名为 Post 的类型列表listraFiltrada
。
然后我想创建一个 PostMedia 列表以在 PageView 小部件上显示媒体文件,该小部件需要 PostMedia 类型的列表来显示媒体文件。
我想将每个 foto1、foto2 和 foto3 url 和媒体类型添加到名为 lista_medios 的列表中,如下所示:
ListView.builder(
itemCount: listaFiltrada.length,
itemBuilder: (context, index) {
bool es_ambassador =
listaFiltrada[index].post_autor_is_ambassador;
//ver si el post tiene media
bool tiene_media =
listaFiltrada[index].post_tiene_media;
bool tiene_fotos =
listaFiltrada[index].post_tiene_fotos;
List<PostMedia> lista_medios;
lista_medios = [];
if (tiene_fotos) {
//foto 1
var foto1 = listaFiltrada[index].foto_1;
//incluimos foto1 en la lista
List<PostMedia> lista = [
PostMedia(
media_url: foto1,
es_foto: true,
es_video: false,
es_youtube: false)
];
lista_medios.add(lista);
但我收到警告:
The argument type 'List<PostMedia>' can't be assigned to the parameter type 'PostMedia/
获取 foto1 的值,将其转换为 PostMedia 类型的元素,然后如何添加更多元素,如 foto2 和 foto3 的正确方法是什么?
解决方案
您实际上是在以下行中的 lista_medois 中插入 List 而不是 PostMedia:
lista_medios.add(lista);
lista
也一样List<PostMedia>
。
根据您的要求尝试转换List<PostMedia> lista_medios;
或选择适当的数据类型。List<List<PostMedia>> lista_medios;
推荐阅读
- excel - 涵盖我的简单案例的excel自定义单元格格式
- php - 刀片中的反应管理面板中的laravel用户仪表板为控制器保持干燥
- bash - 如何修复由 amix 过滤器导致的损坏视频 - FFMPEG
- wordpress - 删除导致我的 WordPress 网站出现问题的渲染阻塞 JS 和 CSS
- amazon-web-services - 拒绝访问除特定 lambda 之外的 S3 存储桶
- c++ - QSqlRelationalTable 如何在具有外键的列中显示来自其他表的值?
- javascript - 动态更改 CSS,某些 CSS 规则不起作用
- javascript - 使用 Elliptic JS 库从公钥生成共享密钥
- javascript - 如何将光标移动到图表上的任何位置,而不仅仅是系列数据点?
- javascript - Vue.js v-show 指令反应性