SuperAPI AI 工具集

flutter-bloc-forms

通用与其它

查看项目

更新于 10-15 21:09

技能介绍

用途:在 Flutter 的 BLoC 架构中管理复杂表单状态、同步与异步输入校验以及表单提交过渡。主要能力:将表单状态放入专用 FormBloc,每个字段对应状态中的一个属性;支持字段变更时实时校验或提交时批量校验;通过 FormSubmitting、FormSuccess、FormError 状态表达提交流程。事件包括 FieldChanged(field, value)、FormSubmitted、FormReset。状态使用单一状态类,包含所有字段值、字段级错误和表单状态,FormStatus 为 sealed class(initial、submitting、success、failure),字段错误用 Map<String, String?> 以字段名为键,null 表示有效。校验逻辑放在领域层,编写返回 String? 的纯函数,如 String? validateEmail(String value) => value.contains('@') ? null : 'Invalid email';,可用 ?? 组合多个校验器,并通过 context.l10n 使用本地化错误信息。输入组件使用 TextFormField 与 InputDecoration,设置 textInputAction、keyboardType、inputFormatters,为每个字段分配 Key('feature_fieldName'),登录注册表单使用 AutofillHints,并用 Focus 或 FocusTraversalGroup 控制 Tab 顺序。控制器在 initState() 中声明为 late final,在 dispose() 中释放,通过 onChanged 或监听器同步到 BLoC。提交时在 FormStatus.submitting 期间禁用提交按钮,字段错误内联显示;成功时导航、反馈并视情况重置表单,失败时通过 SnackBar 或内联提示并保留数据。常见模式包括搜索事件使用 300-500ms 防抖、多步骤表单在同一 FormBloc 内分步校验、依赖字段在 on<FieldChanged> 中更新选项。限制:资料未提供具体安装命令、依赖版本、平台支持或收费信息。