flutter 从状态中注销字段

bpsygsoo  于 2023-05-29  发布在  Flutter
关注(0)|答案(1)|浏览(126)

从State中注销字段

7.7.0版本:

我从List中删除Text Field后得到_fields.containsKey(name)

我有细胞的动态计数(每个细胞包含一个TextField)在我的滚动视图,用户也能够删除细胞。在删除单元格并关闭屏幕后,我认为disposer / deinit部分正在接管并迭代each _field,并试图取消注册字段。

通过这样做,我得到:

小部件库捕获的异常(Exception caught by widgets library)完成小部件树时抛出了以下Assert:'package:flutter_form_builder/src/form_builder. dart':Assert失败:第194行位置12:'_fields.containsKey(name)':不是真的

创意

我找不到任何文档如何在删除单元格后自行取消注册字段,我可以调用formKey.currentState?.unregisterField,但我不知道如何访问FormBuilderFieldState
有什么帮助吗?
SDK https://github.com/flutter-form-builder-ecosystem/flutter_form_builder

ddhy6vgd

ddhy6vgd1#

FlutterFormBuilder在currentState内部的map中呈现字段状态,您可以从正在使用的表单键访问currentState(与访问unregister函数的状态相同)。这是一个例子

final _formKey = GlobalKey<FormBuilderState>();

final FormBuilderFieldState<FormBuilderField<dynamic>, dynamic> field = _formKey.currentState!.fields['[your_field]']!;

_formKey.currentState!.unregisterField('[your_field]', field);

希望这个答案能帮到你!

相关问题