updateDependentValues method

  1. @override
  2. @mustCallSuper
void updateDependentValues(
  1. covariant WidgetType? oldWidget
)
override

Implementation

@override
@mustCallSuper
void updateDependentValues(WidgetType? oldWidget) {
  super.updateDependentValues(oldWidget);
  manual = widget.manual == true;
  onChangeProvider = AntdFormItemOnChangeProvider.of<T>(context);
  groupProvider = AntdFormItemGroupProvider.of(context);
  var formItem = AntdFormItemProvider.ofMaybe(context);
  disabled =
      (widget.disabled ?? groupProvider?.disabled ?? formItem?.disabled) ==
          true;
  readOnly =
      (widget.readOnly ?? groupProvider?.readOnly ?? formItem?.readOnly) ==
          true;
  if (formItem != null && formItem.existsShouUpdate != true) {
    var name = formItem.namePath;
    AntdLogs.w(
        msg:
            "A default shouldUpdate has been added for field '$name'. If you use other fields in your builder, remember to include them in dependencies, or use a custom shouldUpdate to ensure your logic works correctly.");
    AntdFormProvider.ofMaybe(context)?.controller.addShouUpUpdate(name,
        (value, beforeValue) {
      return isChanged(value?[name], beforeValue?[name]);
    });
  }

  if (manual) {
    value = widget.value;
    AntdLogs.w(
        msg:
            "Controlled mode active (non-empty value). Manual value update required.",
        biz: widget.runtimeType.toString());
    if (oldWidget != null) {
      WidgetsBinding.instance.addPostFrameCallback((_) {
        handlerAutoCollect(value, oldWidget.value);
      });
    }
  } else {
    var formValue = widget.getValue(context);
    if (formValue != null && value == null) {
      value = formValue;
    }
  }

  if (manual &&
      oldWidget != null &&
      widget.shouldTriggerChange == true &&
      widget.onChange != null &&
      isChanged(value, oldWidget.value)) {
    WidgetsBinding.instance.addPostFrameCallback((_) {
      handlerOnChange(value);
    });
  }
}