【发布时间】:2021-11-24 08:11:56
【问题描述】:
我正在使用带有fluter的getx obs,下面是json响应。
[{"id":1,"designation":"Deputy General Manager"},{"id":2,"designation":"Executive Director, Technical Operations","designation_short_code":"ED, TO"},{"id":3,"designation":"Manager","designation_short_code":"M"},{"id":4,"designation":"Sr. Manager","designation_short_code":"Sr. M"}]
在我正在使用的控制器中--
var listData = List<dynamic>.empty(growable: true).obs;
var designation = 1.obs;
void setDesignation(int value) {
designation.value = value;
}
我根据listData下的api调用得到上述json响应。
在 UI 中我使用下面的代码..
Obx(() => DropdownButtonFormField<dynamic>(
decoration: InputDecoration(
hintText: 'Designation',
labelText: 'Select Designation',
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(8),
),
filled: true,
fillColor: Colors.white,
errorStyle: TextStyle(color: Colors.yellow),
),
hint: Text(
'Select Designation',
),
onChanged: (selectedValue) {
designation_controller
.setDesignation(selectedValue);
},
value:
designation_controller.designation.value.toInt(),
items: designation_controller.listData.map((map) {
return DropdownMenuItem(
child: Text(map['designation']),
value: map['id'],
);
}).toList(),
)),
我的问题是,当我选择指定时,尽管我的 api 端点收到 200 响应,但它并没有更新。
谁能帮帮我。 提前致谢。
【问题讨论】:
-
面临同样的问题,但您是否尝试过在控制器中使用更新方法?
-
你在哪里设置
listData的值?
标签: flutter flutter-getx obs flutter-dropdownbutton