Flutter中如何在表单提交后自动重置Dropdown_search下拉字段
Flutter DropdownSearch 表单提交后重置方案
两种可直接落地的实现方式如下:
方案1:使用DropdownSearch自带控制器(更推荐)
- 第一步声明控制器,泛型需和下拉绑定的数据类型保持一致
late final DropdownSearchController<你的数据类型> _dropdownController;
- 第二步在
initState生命周期中初始化控制器
@override void initState() { super.initState(); _dropdownController = DropdownSearchController(); }
- 第三步将控制器绑定到DropdownSearch组件
DropdownSearch<你的数据类型>( controller: _dropdownController, // 其余原有配置保持不变 )
- 第四步在表单提交回调中调用清空方法
void _submitForm() { // 原有表单提交逻辑执行完毕后调用 _dropdownController.clear(); }
方案2:使用GlobalKey定位组件状态
适合不想额外维护控制器的轻量化场景
- 第一步声明对应类型的GlobalKey
final _dropdownKey = GlobalKey<DropdownSearchState<你的数据类型>>();
- 第二步将key绑定到DropdownSearch组件
DropdownSearch<你的数据类型>( key: _dropdownKey, // 其余原有配置保持不变 )
- 第三步在提交回调中调用清空方法
void _submitForm() { // 原有表单提交逻辑执行完毕后调用 _dropdownKey.currentState?.clear(); }
补充说明
如果需要重置为指定默认值而非完全清空,可以将上述
clear()方法替换为changeSelectedItem(默认值),传入的默认值必须属于下拉选项列表内的有效元素,否则不会生效。
内容的提问来源于stack exchange,提问作者user2783212
相关产品推荐
相关产品推荐

