addItem<T> method

void addItem<T>(
  1. String name,
  2. AntdFormItemState state
)

Implementation

void addItem<T>(String name, AntdFormItemState state) {
  if (_items.containsKey(name) && _items[name] == state) {
    return;
  }

  AntdFormItemState? oldState = _items[name];
  _items[name] = state;
  _itemRebuildMark[name] = ValueNotifier(false);
  _feedbackRebuildMark[name] = ValueNotifier(false);

  if (!_items.containsKey(name) ||
      oldState?.widget.initialValue != state.widget.initialValue ||
      _setInitValue.containsKey(name)) {
    dynamic initValue;
    if (state.widget.initialValue is Map<String, dynamic>) {
      initValue =
          _findValueByPath(state.widget.initialValue, name.split("."));
    } else {
      initValue = state.widget.initialValue;
    }
    initValue ??= _findValueByPath(_setInitValue, name.split("."));
    _initValue[name] = initValue;
    _value[name] = _Value(null, initValue);
  }

  WidgetsBinding.instance.addPostFrameCallback((_) {
    if (_dispose) {
      return;
    }
    _notifyFieldsChanges([name], true, [..._items.keys]);
  });
}