如果我更改第一个下拉值,如何重置第二个下拉列表?

达瓦尔·乔达里

我有两个下拉菜单,第二个取决于第一个。

当我在选择第二个下拉值后更改第一个下拉值时,它会引发如下错误。

在此处输入图片说明

那么如果我更改了第一个下拉值,如何重置第二个下拉列表?

下拉按钮如下。

DropdownButtonFormField<Standard>(
                      validator: (value) {
                        if (value == null) {
                          return "Select Standard";
                        }
                      },
                      isExpanded: true,
                      hint: Text('Select Standard'),
                      value: selectedStandard,
                      items: _standards.map((Standard standard) {
                        return DropdownMenuItem<Standard>(
                          value: standard,
                          child: Text(standard.standardName),
                        );
                      }).toList(),
                     
                      onChanged: (val) {
                        setState(() {
                          selectedStandard = val;
                          standardId = val?.standardId;
                          onMediumChange(val);
                        });
                      }),
                  SizedBox(height: 20),

                  DropdownButtonFormField<Medium>(
                      validator: (value) {
                        if (value == null) {
                          return "Select Medium";
                        }
                      },
                      isExpanded: true,
                      hint: Text('Select Medium'),
                      value: selectedMedium,
                      items: _mediums.map((Medium medium) {
                        return DropdownMenuItem<Medium>(
                          value: medium,
                          child: Text(medium.mediumName),
                        );
                      }).toList(),
                     
                      onChanged: (val) {
                        setState(() {
                          selectedMedium = val;
                          mediumId = val?.mediumId;
                        });
                      }),

并获取值代码如下。我使用的变量。

var _standards = <Standard>[];
  var _mediums = <Medium>[];
  Standard? selectedStandard;
  Medium? selectedMedium;

@override
  void initState() {
    super.initState();

    ApiManager().getStandards().then((standards) {
      setState(() {
        _standards = standards;
      });
    });
  }

  void onMediumChange(standard) {
    setState(() {
      selectedStandard = standard;
      _mediums = [];
    });
    String mediumUrl =
        "$baseUrl/medium/get_by_course_id?standard_id=${selectedStandard?.standardId}";
    ApiManager().getMediums(mediumUrl).then((List<Medium> value) => {
          setState(() {
            _mediums = value;
          })
        });
  }
阿鲁

据我了解有问题 selectedMedium

尝试更改使其选中nullonMediumChange

 void onMediumChange(standard) {
setState(() {
  selectedMedium = null;
  selectedStandard = standard;
  _mediums = [];
});
String mediumUrl =
    "$baseUrl/medium/get_by_course_id?standard_id=${selectedStandard?.standardId}";
ApiManager().getMediums(mediumUrl).then((List<Medium> value) => {
      setState(() {
        _mediums = value;
      })
    });

}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如果我不更改第一个下拉列表,则第二个下拉列表的值不变

如何使第二个下拉列表基于第一个下拉值自动选择值

Javascript:如果第一个下拉列表的值大于第二个下拉列表的值,如何从第二个下拉列表中删除选项,反之亦然?

如何刷新与我在 mvc 中的第一个下拉列表相关的第二个下拉列表的新数据

如果选择第二个下拉框,如何获取第一个下拉框的值

如何根据第一个选项选择更改第二个下拉列表和基于第二个选项选择的第三个下拉列表

如何基于第一个下拉列表选择获取动态生成的两个下拉列表的第二个下拉列表的ID?

选择第二个下拉值后重新填充角度双重下拉列表的第一个下拉列表

我在第一个下拉列表中保留了选择选项值,但没有保留第二个或第三个

根据第一个下拉列表中的选择显示第二个下拉列表?

显示基于第一个下拉列表的第二个下拉列表不起作用

jQuery的第二个下拉列表取决于第一个下拉列表没有变化

jQuery根据第一个下拉列表显示/排序第二个下拉列表?

根据第一个多选下拉列表更新第二个多选下拉列表

AngularJS:根据第一个选择下拉列表的选择填充第二个选择下拉列表

第二次更改第一个下拉列表值时,将再次生成新的下拉列表以及旧的第二个下拉框

如果未选择第一个下拉菜单,则禁用第二个下拉菜单

第一个下拉选择不过滤第二个下拉

根据第一个下拉选项更改第二个下拉选项(仅JavaScript)

我想做一个条件,如果我从第一个下拉列表中选择这个项目,它会只显示我在第二个下拉列表中选择的项目

根据第一个下拉框的值预填充第二个下拉框

NodeJ:-从第一个下拉列表中获取值并动态填充第二个下拉列表中的值

使用ajax和jQuery根据烧瓶中第一个下拉列表中选择的值填充第二个下拉列表

根据 List<Map<String, Object>> 中第一个下拉列表的值填充第二个下拉列表

下拉值在 4 个字段中相同,当我选择第一个下拉列表时,它为第二个下拉列表正确选择它再次更新

如何从第二个对象更改第一个对象的值?

如何使用与第一个下拉菜单相同的值填充第二个下拉菜单

如何使用Zend Form中的JQuery从第一个下拉选择中的下拉菜单中选择第二个值

两个具有相同值的下拉菜单。如果用户在第一个下拉菜单中选择一个值,则必须在第二个下拉菜单中禁用该值