在将来的构建器中从sqflite数据库的响应中填充下拉列表时,我遇到了问题,
这是我的代码
FutureBuilder(
future: DBProviderExpedientesAulaVirtual.db.getAllAsignaturas(),
builder: (BuildContext context, AsyncSnapshot snapshot){
if(snapshot.connectionState == ConnectionState.done &&
snapshot.data != null &&
!snapshot.hasError){
var mydata = jsonEncode(snapshot.data);
print('mydata av $mydata');
List<Asignaturas> asignaturaList = AsignaturasFromJson(mydata);
return new DropdownButtonFormField <Asignaturas>(
value: _asignatura,
items: asignaturaList.map<DropdownMenuItem<Asignaturas>>((Asignaturas e){
print('esta es e ${e.asignaturaNombre}');
return DropdownMenuItem<Asignaturas>(
value: e,
child:Container(
child: Row(
children: [
Container(
child: Icon(Icons.book, color: Hexcolor("${e.asignaturaColorPrimario}"),),
),
Container(
child: Text('${e.asignaturaNombre}'),
)
],
),
),);
}).toList(),
onChanged: (Asignaturas valor){ setState(() { _asignatura = valor;});} );
}else{
return Center(
child: Container(
child: CircularProgressIndicator(),
),
);
}
})
这件事不允许我将类文件添加为代码,因此这是外部图像 enter image description here 我能够显示信息,但是当我选择一个元素时会出现错误。
,这是错误的屏幕截图 enter image description here
以防万一,您想知道mydata的样子,就像下面的日志 enter image description here
我读到这是因为我有重复的值,但是我想要的是通过下拉列表项以其ID标识项目,在这种情况下,其名称为asignaturaId。
欢迎任何帮助,谢谢:)