in src/setter/object-setter/index.tsx [58:87]
function getItemsFromProps(props: RowSetterProps, state?: RowSetterState) {
const { config, field, columns } = props;
const { extraProps } = field;
const items: IPublicModelSettingField[] = [];
if (columns && config?.items) {
const l = Math.min(config.items.length, columns);
for (let i = 0; i < config.items.length; i++) {
const conf = config.items[i];
if (conf.isRequired || conf.important || (conf.setter as any)?.isRequired) {
const item = state?.items?.filter(d => d.name === conf.name)?.[0] || field.createField({
...conf,
// in column-cell
forceInline: 3,
});
const originalSetValue = item.extraProps.setValue;
item.extraProps.setValue = (...args) => {
// 调用子字段本身的 setValue
originalSetValue?.apply(null, args);
// 调用父字段本身的 setValue
extraProps.setValue?.apply(null, args);
};
items.push(item);
}
if (items.length >= l) {
break;
}
}
}
return items;
}