reportNewFormValue<T> method

  1. @override
FutureOr<ValidationResult?> reportNewFormValue<T>(
  1. T? value
)
override

Reports a new value to the form and triggers validation.

Parameters:

  • value (T?, required): The new field value.

Returns: FutureOr<ValidationResult?> — validation result if applicable.

Implementation

@override
FutureOr<ValidationResult?> reportNewFormValue<T>(T? value) {
  bool isSameType = widget.key is DynamicFormKey || widget.key.type == T;
  if (!isSameType) {
    var parentLookup = Data.maybeFind<FormFieldHandle>(context);
    assert(parentLookup != this, 'FormEntry cannot be its own parent');
    return parentLookup?.reportNewFormValue<T>(value);
  }
  var cachedValue = _cachedValue;
  if (cachedValue != null && cachedValue.value == value) {
    return _validity.value;
  }
  _cachedValue = _FormEntryCachedValue(value);
  return _controller?.attach(context, this, value, widget.validator);
}