form_bloc
form_bloc copied to clipboard
Can't set TextFieldBlocState.error to null after successful validation
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.
https://github.com/GiancarloCode/form_bloc/pull/312#issuecomment-1164240179