🔥 Dart and Flutter Package 🔥 Easy Form State Management using BLoC pattern 🔥 Wizard/stepper forms, asynchronous validation, dynamic and conditional fields, submission progress, serialization and more! 🔥
In a scenario when editing an already existing record, there is a need to initialize initial values for FieldBlocs. The first validation seems to happen on creating FormBloc. Values are empty at that point, so if field is required, State.error has error message. When SingleFieldBloc.updateInitialValue performs successful validation of new value, it calls
emit(state.copyWith(
...
error: Param(error),
...
))
where error is NULL.
The TextFieldBlocState.copyWith implementation is like this:
error: error == null ? this.error : error.value,
so when error is NULL it just keeps an old error message instead of reset it to null. As result the valid form submission fails.
In a scenario when editing an already existing record, there is a need to initialize initial values for FieldBlocs. The first validation seems to happen on creating FormBloc. Values are empty at that point, so if field is required, State.error has error message. When SingleFieldBloc.updateInitialValue performs successful validation of new value, it calls
emit(state.copyWith( ... error: Param(error), ... ))
where error is NULL. The TextFieldBlocState.copyWith implementation is like this:error: error == null ? this.error : error.value,
so when error is NULL it just keeps an old error message instead of reset it to null. As result the valid form submission fails.