Flutter 颤振下降按钮条件不工作
我有一个值列表,可以用RESTAPI中的JSON解析成一个下拉按钮。值解析得很好,但我应用了一个条件,即当没有可显示的值列表时,它应该只在下拉列表上显示一个文本,表示“无设备”。但出于某种原因,这是行不通的 我的代码:Flutter 颤振下降按钮条件不工作,flutter,dropdownbutton,Flutter,Dropdownbutton,我有一个值列表,可以用RESTAPI中的JSON解析成一个下拉按钮。值解析得很好,但我应用了一个条件,即当没有可显示的值列表时,它应该只在下拉列表上显示一个文本,表示“无设备”。但出于某种原因,这是行不通的 我的代码: List data = List(); Future<String> getSWData() async { setState(() { isLoading = true; }); var res = await http
List data = List();
Future<String> getSWData() async {
setState(() {
isLoading = true;
});
var res = await http
.get(Uri.encodeFull(url), headers: {"Accept": "application/json"});
resBody = json.decode(res.body);
setState(() {
data = resBody;
isLoading = false;
});
return "Sucess";
}
child: DropdownButton(
hint: new Text(
"Select Equipment",
style: style,
),
style: style,
onChanged: (newVal) {
setState(() {
_mySelectionEquipment = newVal;
});
},
value: _mySelectionEquipment,
items: data.map((item) {
return new DropdownMenuItem(
child: Row(
children: <Widget>[
Text(item['EquipmentMake'] ??
"No Equipment Registered"),
SizedBox(
width: 5,
),
SizedBox(
width: 5,
),
Text(item['EquipmentModel'] ?? ""),
],
),
value: item['EquipmentID'].toString(),
);
}).toList(),
isExpanded: false,
),
List data=List();
Future getSWData()异步{
设置状态(){
isLoading=true;
});
var res=等待http
.get(Uri.encodeFull(url),头:{“接受”:“应用程序/json”});
resBody=json.decode(res.body);
设置状态(){
数据=resBody;
isLoading=false;
});
返回“成功”;
}
孩子:下拉按钮(
提示:新文本(
“选择设备”,
风格:风格,
),
风格:风格,
更改后:(newVal){
设置状态(){
_mySelectionEquipment=newVal;
});
},
值:_mySelectionEquipment,
条目:data.map((条目){
返回新的DropdownMenuItem(
孩子:排(
儿童:[
文本(项目['EquipmentMake']??
“无注册设备”),
大小盒子(
宽度:5,
),
大小盒子(
宽度:5,
),
文本(项目['EquipmentModel']??“”),
],
),
值:项['EquipmentID'].toString(),
);
}).toList(),
isExpanded:错,
),
您调用空列表上的映射
试着这样做:
items: data.length > 0
? data.map((item) {
return new DropdownMenuItem(
child: Row(
children: <Widget>[
Text(item['EquipmentMake'] ??
"No Equipment Registered"),
SizedBox(
width: 5,
),
SizedBox(
width: 5,
),
Text(item['EquipmentModel'] ?? ""),
],
),
value: item['EquipmentID'].toString(),
);
}).toList()
: [
DropdownMenuItem(
child: Row(
children: <Widget>[
Text("No Equipment Registered"),
SizedBox(
width: 5,
),
SizedBox(
width: 5,
),
Text(""),
],
),
value: 0.toString())
],
项:data.length>0
? data.map((项){
返回新的DropdownMenuItem(
孩子:排(
儿童:[
文本(项目['EquipmentMake']??
“无注册设备”),
大小盒子(
宽度:5,
),
大小盒子(
宽度:5,
),
文本(项目['EquipmentModel']??“”),
],
),
值:项['EquipmentID'].toString(),
);
})托利斯先生()
: [
下拉菜单项(
孩子:排(
儿童:[
文本(“无注册设备”),
大小盒子(
宽度:5,
),
大小盒子(
宽度:5,
),
正文(“”),
],
),
值:0.toString())
],
您调用空列表上的映射
试着这样做:
items: data.length > 0
? data.map((item) {
return new DropdownMenuItem(
child: Row(
children: <Widget>[
Text(item['EquipmentMake'] ??
"No Equipment Registered"),
SizedBox(
width: 5,
),
SizedBox(
width: 5,
),
Text(item['EquipmentModel'] ?? ""),
],
),
value: item['EquipmentID'].toString(),
);
}).toList()
: [
DropdownMenuItem(
child: Row(
children: <Widget>[
Text("No Equipment Registered"),
SizedBox(
width: 5,
),
SizedBox(
width: 5,
),
Text(""),
],
),
value: 0.toString())
],
项:data.length>0
? data.map((项){
返回新的DropdownMenuItem(
孩子:排(
儿童:[
文本(项目['EquipmentMake']??
“无注册设备”),
大小盒子(
宽度:5,
),
大小盒子(
宽度:5,
),
文本(项目['EquipmentModel']??“”),
],
),
值:项['EquipmentID'].toString(),
);
})托利斯先生()
: [
下拉菜单项(
孩子:排(
儿童:[
文本(“无注册设备”),
大小盒子(
宽度:5,
),
大小盒子(
宽度:5,
),
正文(“”),
],
),
值:0.0至