【问题标题】:Cannot update DropdownButtonFormField field value in flutter with getx obs无法使用 getx obs 更新 DropdownButtonFormField 字段值
【发布时间】: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


【解决方案1】:

我已经解决了问题。我的问题在下面的代码中

updateData(
    controller.userData[0]['id'], 
    controller.designationEdittingTextController.text
)

我已将controller.designationEdittingTextController.text 更改为controller.designationEdit.value,如下所示

updateData(
    controller.userData[0]['id'],
    controller.designationEdit.value
)

谢谢

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-07
    • 2022-11-04
    • 1970-01-01
    • 1970-01-01
    • 2012-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多