fix: 😊修复arraysetter删除不更新问题

This commit is contained in:
荣彬 2020-08-01 22:42:32 +08:00
parent 7f4df0950d
commit 9d8a7306a6

View File

@ -85,7 +85,6 @@ export class ListSetter extends Component<ArraySetterProps, ArraySetterState> {
private scrollToLast = false;
onAdd() {
const { items, itemsMap } = this.state;
debugger;
const { itemSetter } = this.props;
const initialValue = typeof itemSetter === 'object' ? (itemSetter as any).initialValue : null;
const item = this.props.field.createField({
@ -104,18 +103,25 @@ export class ListSetter extends Component<ArraySetterProps, ArraySetterState> {
}
onRemove(field: SettingField) {
const { items } = this.state;
const {onChange, itemSetter} = this.props;
const { items, itemsMap } = this.state;
let i = items.indexOf(field);
const values = items.map((item) => {
return item.getValue();
});
if (i < 0) {
return;
}
items.splice(i, 1);
values.splice(i, 1);
const l = items.length;
while (i < l) {
items[i].setKey(i);
i++;
}
itemsMap.delete(field.id);
field.remove();
onChange(values)
this.setState({ items: items.slice() });
}