A simple form validation helper.
create a field and define its validity criteria.
classFirstNameFieldextendsValidFormField<FirstNameField, String> {
constFirstNameField({requiredsuper.initial, requiredsuper.isRequired});
@overrideIterable<ValidFieldValidator> get validators => [
ValidFieldValidator(
predicate: () => value.length >2,
invalidReason:'should have more than 2 characters',
),
];
}a field can be validated on its own.
final firstName =FirstNameField(initial:'-', isRequired =true);
firstName.isValid; // false
firstName.update('Joseph');
firstName.value; // 'Joseph'
firstName.addListener(doSomethingWhenValueChanges);or it can be combined with other fields in a form.
final form =ValidForm(fields: [firstName, email, password]);a form is only valid if all of its required fields are valid.