Я хочу выпадение стадий во флаттере, значения которых поступают из базы данных sqflite.значение образца в формате json имеет формат ниже, и эти значения хранятся локально.есть два раскрывающихся списка ![enter image description here](https://i.stack.imgur.com/Qaw0t.png)
, если я выберу конвейер 'учителя', то его идентификатор 54 будет передан будущему строителю раскрывающегося списка этапов, и я хочу выбрать один этап.
{
"id": 54,
"name": "teacher",
"stages": "{\"advertise\":false,\"interview\":false}",
"created_at": "2019-08-23 20:11:54",
"updated_at": "2019-08-23 20:12:48",
"deleted_at": null
},
ниже приведен будущий компоновщик для выпадающего списка
FutureBuilder(
future: pipelineHelper.getPipeStage(pipelineId),
builder: (BuildContext context,
AsyncSnapshot<List<Pipeline>>
snapshot) {
if (!snapshot.hasData)
return CircularProgressIndicator();
return DropdownButton(
items: snapshot.data
.map((stageList) => DropdownMenuItem<Pipeline>(
value: stageList, child: Text(stageList.stages),))
.toList(),
onChanged: (value) {
setState(() {
stageName = value.stages;
debugPrint('stage selected');
});
},
isExpanded: true,
hint: Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
SizedBox(height: 8.0),
Text('Stage',style: _fontSize,),
stageName == null ? Text('') : Text(stageName,style: _blackColor)
],),
);
}),
, когда я пытаюсь
items: snapshot.data.stages.split(',')
я получил ошибку: этапы получения 'не определены для класса'Ошибка списка.Ниже моя вспомогательная функция
Future<List<Pipeline>> getPipeStage(int number) async {
Database db = await this.database;
var orgMapList = await db.rawQuery('SELECT $colStages from $pipeTable WHERE $colId = $number'); // Get 'Map List' from database
int count = orgMapList.length;
List<Pipeline> pipeList = List<Pipeline>();
// For loop to create a 'Pipeline List' from a 'Map List'
for (int i = 0; i < count; i++) {
pipeList.add(Pipeline.fromMapObject(orgMapList[i]));
}
return pipeList;
}