颤动与JSON填充dropdownmenu
问题描述:
我想从JSON从休息API返回并填充下拉菜单,我需要有不同的值的孩子值。有没有人做过这个或有一个例子或建议。我正在使用基本示例,似乎无法找到使用JSON而不是静态列表的方式。以下是我所尝试过的,但它仍然没有找到价值。我不断收到一个dart空错误。任何帮助都会很棒。我已经更新了我如何获得JSON和解码。我尝试了几件事情。这也是错误,但我已经在调试中确认该值不会为空,所以它必须是JSON。我已经尝试了一个静态列表,它的工作原理。颤动与JSON填充dropdownmenu
'package:flutter/src/material/dropdown.dart': Failed assertion: line 433 pos 15: 'value == null
String _referPractice = '<New>';
JSON看起来是这样的:
答
,因为你是一个值!null
初始化_referPractice
您收到此错误,并且您将其送入DropDownButton
的财产value
,它代表当前选择的项目,如果尚未选择项目,则必须为空。
String _mySelection;
List<Map> _myJson = [{"id":0,"name":"<New>"},{"id":1,"name":"Test Practice"}];
@override
Widget build(BuildContext context) {
return new Scaffold(
body: new Center(
child: new DropdownButton<String>(
isDense: true,
hint: new Text("Select"),
value: _mySelection,
onChanged: (String newValue) {
setState(() {
_mySelection = newValue;
});
print (_mySelection);
},
items: _myJson.map((Map map) {
return new DropdownMenuItem<String>(
value: map["id"].toString(),
child: new Text(
map["name"],
),
);
}).toList(),
),
),
);
}
你从哪里获得空错误:
我一直在使用你提供的JSON复制你的榜样?您究竟是如何将JSON文件解码到您的应用程序中的? – aziza
最初在'_referPractice'中有什么?以及“惯例”地图结构如何? – aziza
您提供的JSON代表您的代码中的哪个变量? – aziza