diff --git a/packages/editor-skeleton/src/components/array-setter/index.tsx b/packages/editor-skeleton/src/components/array-setter/index.tsx index 997237e9e..da5b5195f 100644 --- a/packages/editor-skeleton/src/components/array-setter/index.tsx +++ b/packages/editor-skeleton/src/components/array-setter/index.tsx @@ -40,6 +40,7 @@ export class ListSetter extends Component { const itemsMap = state ? state.itemsMap : new Map(); const items = state ? state.items.slice() : []; + debugger; if (newLength > originLength) { for (let i = originLength; i < newLength; i++) { const item = field.createField({ @@ -57,6 +58,7 @@ export class ListSetter extends Component { itemsMap.delete(item.id); }); } + return { items, itemsMap, @@ -72,7 +74,7 @@ export class ListSetter extends Component { onSort(sortedIds: Array) { const { itemsMap } = this.state; - const { onChange } = this.props; + const { onChange ,itemSetter,field} = this.props; const items = sortedIds.map((id, index) => { const item = itemsMap.get(id)!; // item.setKey(index); @@ -82,10 +84,26 @@ export class ListSetter extends Component { const values = items.map((item) => { return item.getValue(); }); - console.log('values',values); + + // 对itemsMap重新生成并刷新当前setter数据 + let newItems = [],newItemsMap = {} + itemsMap.clear(); + for (let i = 0; i < items.length; i++) { + const newItem = field.createField({ + name: i, + setter: itemSetter, + // FIXME: + forceInline: 1, + }); + newItems[i] = newItem; + + itemsMap.set(newItem.id, newItem); + } + onChange(values); this.setState({ - items, + items:newItems, + itemsMap }); } diff --git a/packages/react-renderer/package.json b/packages/react-renderer/package.json index b529d7274..f1c21c3fe 100644 --- a/packages/react-renderer/package.json +++ b/packages/react-renderer/package.json @@ -53,5 +53,5 @@ "publishConfig": { "registry": "http://registry.npm.alibaba-inc.com" }, - "homepage": "https://unpkg.alibaba-inc.com/@ali/lowcode-react-renderer@0.8.13/build/index.html" + "homepage": "https:/unpkg.alibaba-inc.com/@ali/lowcode-react-renderer@0.8.13/build/index.html" }