我在运行以下代码时遇到了一个错误:
_TypeError (type 'List<dynamic>' is not a subtype of type 'List<DropdownMenuItem<int>>?')
Widget getDropDownMenu() {
return FutureBuilder(
future: getOptionList(),
builder: (BuildContext context, AsyncSnapshot snapshot) {
if (snapshot.connectionState == ConnectionState.waiting) {
// While the task is happening, show a loading spinner
return Center(
child: CircularProgressIndicator(),
);
} else if (snapshot.hasError) {
// If there's an error, display an error message
return Center(
child: Text('Error: ${snapshot.error}'),
);
} else {
return DropdownButtonFormField(
validator: (value) {
if (value == 0) {
return 'Please choose an option from the list';
}
return null;
},
decoration: InputDecoration(
border:
OutlineInputBorder(borderRadius: BorderRadius.circular(10)),
),
value: _indicators_field_value,
items: snapshot.data.map((map) {
return DropdownMenuItem(
child: Text(map.name),
value: map.id,
);
}).toList(),
onChanged: (v) {
this._indicators_field_value = v!;
},
);
}
});
}
getOptionList()
将从API获取数据并放入模型中. 我从调用这个函数得到的是一个Model列表.List<Model>
我试了好几个小时才决定在这里问.