我在 Flutter 中使用reactive_forms,这是一个模型驱动的表单库,其灵感来自 Angular Reactive Forms。
添加一个带有一个名为“nickName”的 formControl 的表单非常简单:
final _form = FormGroup({
'nickName':
FormControl<String>(validators: [Validators.required]),
});
Run Code Online (Sandbox Code Playgroud)
我的问题是,将表单控件“nickName”绑定到域模型的属性不是常见的做法和良好的做法吗?因为这是我在 Angular 中开发的另一个代码库中所做的事情。
我确实有这个表单的域模型(尽管它的字段比表单包含的字段多。其余字段在以下页面的表单中设置 - 就像设置向导一样):
class UserRegistrationEntity {
String nickName;
String email;
String confirmEmail;
String password;
String confirmPassword;
}
Run Code Online (Sandbox Code Playgroud)
我可以像这样创建模型:
final userRegistration = UserRegistrationEntity();
Run Code Online (Sandbox Code Playgroud)
但是我现在如何将nickName的字段绑定userRegistration到我的表单控件?我期望表单库有一个相当于ngModel字段,以便我在表单控件上设置模型的字段。
或者这不是 Flutter 中所做的事情?
示例:https://angular.io/api/forms/NgModel#using-ngmodel-on-a-standalone-control
我试图在 flutter 中创建动态字段数组,reactive_forms 是最好的选择。但没有我需要使用的 ReactiveFormArray 文档。
做了一些尝试和错误,找到了使用它的方法。下面是答案。