flutter - 将列表从 Json 放入下拉按钮
问题描述
我正在尝试将列表(来自 json)放入下拉列表中,但我不知道该怎么做,尝试了一些方法但无法使其工作。
我有这个列表和这个函数来从 api 中检索数据:
(我在 initstate 上运行的 loadFuncionarios,所以当我加载屏幕时,我已经有数据可以放在下拉列表中)
List funcionariosList = <Funcionarios>[];
Future loadFuncionarios() async {
Response response;
Dio dio = new Dio();
String url = 'http://192.168.15.4:8090/api/funcionarios';
response = await dio.post(url);
FuncionariosList funcionariosList =
FuncionariosList.fromJson(response.data);
print(funcionariosList.funcionarios[0].nome);//Just a test
print(funcionariosList.funcionarios.length);
}
我有这个下拉列表:
DropdownButton(
isExpanded: true,
iconEnabledColor: Colors.blue[900],
value: _value,
items: [
DropdownMenuItem(
child: Text("Test"),
value: 1,
),
],
onChanged: (value) {
setState(() {
_value = value;
});
}),
我的列表 os Funcionarios 有一个字符串 Nome,我想将它作为下拉列表的 itens,我该怎么做?
解决方案
要访问数据,您必须将列表映射到项目中:
items: funcionariosList.map((funcionario) => DropdownMenuItem()).toList();
您可以将 'funcionario' 更改为您喜欢的任何名称。现在,您可以使用点表示法访问每个项目的数据(例如 funcionario.name);
FutureBuilder<List<Functionario>>(
future: loadFunctionarios();
builder: (context, snapshot) {
functionariosList = snapshot.data == null ? List<Functionario>() : snapshot.data;
DropdownButton(
isExpanded: true,
iconEnabledColor: Colors.blue[900],
value: _value,
items: funcionariosList.map((funcionario) => DropdownMenuItem()).toList();
onChanged: (value) {
setState(() {
_value = value;
});
}),
});
另外,将您的功能更改为:
Future<List<Functionario>> loadFuncionarios() async {
Response response;
Dio dio = new Dio();
String url = 'http://192.168.15.4:8090/api/funcionarios';
response = await dio.post(url);
print(funcionariosList.funcionarios[0].nome);//Just a test
print(funcionariosList.funcionarios.length);
return FuncionariosList.fromJson(response.data);
}
我假设该模型称为 Functionario。
推荐阅读
- ios - 使用空字典调用 nw_dictionary_copy
- tcl - 在 Tcl 中循环调用进程和赋值
- java - 查找 SD 卡路径并使用其文件的正确方法
- css - Bootstrap 与 Vuetify 日期选择器冲突
- swift - SwiftUI:更新由其他 @State 变量组成的 @Binding 变量的最佳方式
- python - 如何按数字顺序(file1.xls、file2.xls等)将多个excel文件编译成一个python文件?
- rabbitmq - 我如何知道 RabbitMQ 中何时使用了一批消息?
- excel - 针对复制的数据设置整列的值
- python - 如何重新采样每个组的边界数据?
- c# - ChoCSVReader 不考虑某些配置