如何映射颤动中的对象阵列



你好,我正在尝试映射对象数组,并返回具有给定对象的一些值的小部件。。。像这个

_metapodaci?.map<Widget>((e) => Text("Naziv dokumenta je ${e.label}")),

我得到一个错误说";元素类型"Iterable"不能分配给列表类型"Widget";但当我在文本窗口小部件内绘制地图时,如下所示:

Text("Meta podaci: ${_metapodaci.map((e) => e.label)}"),

则metapodaci映射良好。如果需要的话,这里是我尝试映射的Whole小部件:

Padding(
padding: const EdgeInsets.all(8.0),

child:   Expanded(
child: _metapodaci.isEmpty ? 
Text("Odaberite vrstu dokumenta") :
Column(
children: [
Text("Meta podaci: ${_metapodaci.map((e) => e.label)}"),
//_metapodaci.map<Widget>((e) => Text("Naziv dokumenta je ${e.label}")),
],
),
),
),

如果有人能提供建议,请表示感谢。提前谢谢!

您需要将数组转换为小部件列表,并且对于null安全问题,您也需要在之前检查null,请尝试以下操作:

Padding(
padding: const EdgeInsets.all(8.0),
child: Expanded(
child: _metapodaci == null || _metapodaci!.isEmpty
? Text("Odaberite vrstu dokumenta")
: Column(
children: _metapodaci!
.map<Widget>((e) =>
Text("Naziv dokumenta je ${e.label}"))
.toList(),
),
),
),

使用toList()方法

_metapodaci?.map<Widget>((e) => Text("Naziv dokumenta je ${e.label}")).toList(),

最新更新