addItem<T> method
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]);
});
}