Flutter 从表单中提取所有键值

标签 flutter dart

我正在使用 flutter 构建一个具有一组动态输入的表单。 因此,我永远无法假设表单将有多少个文本字段,因此我无法手动为每个字段分配一个键以便稍后从其 Controller 检索数据。

如果我实例化一个包含一些 TextFormFieldForm,我如何才能简单地提取整个表单的键值数组,例如,当按下一个按钮时?

Form(
  key: _formKey,
  child: Column(
    children: [
       TextFormField(),
       TextFormField(),
       TextFormField(),
    ]
  )
)

最佳答案

动态生成 TextField 及其 Controller

Map<int,TextEditingController> controllers = {};

        Form(
            key: _formKey,
            child: Column(children: [
              ...List.generate(length, (index) {
                var controller = controllers.putIfAbsent(
                    index, () => TextEditingController());
                return TextFormField(
                  controller: controller,
                );
              })
            ]));

您可以使用索引访问给定 map 中的所有 Controller

关于Flutter 从表单中提取所有键值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63025276/

相关文章:

flutter - 使用 flutter 2.5 : "Failed to load "_test. dart 运行测试时出错“: Shell subprocess ended cleanly. main() 是否调用了 exit()?”

dart - 有没有类似 Redux for Flutter 的东西?

dart - 了解抖动语法

generics - 通用 Dart : '(BuildContext, String) => Padding'类型不是 '(BuildContext, dynamic) => Widget'类型的子类型

android - 如何从 firebase 实时数据库获取数据并更改一个文本字段以表示该特定记录?

flutter - 是否支持在 Flutter 中使用 Facebook SDK(具体应用事件)?

dart - 接口(interface)的依赖注入(inject)

dart - Dart lang:您如何通过浏览器功能测试文件上传和文件读取API?

Android 某些设备上的 Flutter local_auth 问题

flutter - 如何让 url 启动器发送电子邮件?