Skip to content

Commit d41dd00

Browse files
authored
Merge pull request #1488 from alibaba/fix-object
feat: 修复数据引用带了的副作用
2 parents 873ee03 + e2ab313 commit d41dd00

File tree

5 files changed

+21
-22
lines changed

5 files changed

+21
-22
lines changed

docs/form-render/api-props.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ group:
4646
| setValues | 外部手动修改 formData,用于已填写的表单的数据回填 | `(formData: any) => void` |
4747
| setValueByPath | 外部修改指定单个 field 的数据(原名 onItemChange) | `(path: Path, value: any) => void` |
4848
| setSchemaByPath | 指定路径修改 schema | `(path: Path, schema: any) => void` |
49-
| setSchema | 指定多个路径修改 schema | `({ path: value }) => void` |
49+
| setSchema | 指定多个路径修改 schema,cover 传true将直接替换 schema | `({ path: value }, cover?: boolean) => void` |
5050
| getValues | 获取表单内部维护的数据, 如果参数为空则返回当前所有数据 | `(nameList?: Path[], filterFunc?: (meta: { touched: boolean, validating: boolean }) => boolean) => any` |
5151
| getHiddenValues | 获取隐藏的表单数据 | `() => any` |
5252
| getSchema | 获取表单的 schema | `()=> object` |

docs/form-render/schema/simple.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,4 @@ export default {
1919
}
2020
}
2121
}
22-
};
22+
};

packages/form-render/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "form-render",
3-
"version": "2.4.0",
3+
"version": "2.4.1",
44
"description": "通过 JSON Schema 生成标准 Form,常用于自定义搭建配置界面生成",
55
"keywords": [
66
"Form",

packages/form-render/src/form-core/index.tsx

Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -196,24 +196,21 @@ const FormCore:FC<FRProps> = (props) => {
196196

197197
const operlabelCol = getFormItemLayout(column, {}, { labelWidth })?.labelCol;
198198

199-
const actionBtns = useMemo(() => {
200-
const result: React.JSX.Element[] = [];
201-
if (!footer?.reset?.hide) {
202-
result.push(
203-
<Button {...footer?.reset} onClick={() => form.resetFields()}>
204-
{footer?.reset?.text || t('reset')}
205-
</Button>
206-
);
207-
}
208-
if (!footer?.submit?.hide) {
209-
result.push(
210-
<Button type='primary' onClick={form.submit} {...footer?.submit}>
211-
{footer?.submit?.text || t('submit')}
212-
</Button>
213-
);
214-
}
215-
return result;
216-
}, []);
199+
const actionBtns = [];
200+
if (!footer?.reset?.hide) {
201+
actionBtns.push(
202+
<Button {...footer?.reset} onClick={() => form.resetFields()}>
203+
{footer?.reset?.text || t('reset')}
204+
</Button>
205+
);
206+
}
207+
if (!footer?.submit?.hide) {
208+
actionBtns.push(
209+
<Button type='primary' onClick={form.submit} {...footer?.submit}>
210+
{footer?.submit?.text || t('submit')}
211+
</Button>
212+
);
213+
}
217214

218215
return (
219216
<Form

packages/form-render/src/widgets/listSimple/index.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ const getHasBackground = (fields: any[], hasBackground: boolean) => {
1717
const SimpleList = (props: any) => {
1818
const {
1919
form,
20-
schema,
20+
schema: _schema,
2121
fields,
2222
rootPath,
2323
renderCore,
@@ -42,6 +42,8 @@ const SimpleList = (props: any) => {
4242
temporary
4343
} = props;
4444

45+
const schema = {..._schema, items: { ..._schema.items }};
46+
4547
if (!schema.items.displayType) {
4648
schema.items.displayType = 'inline';
4749
schema.items.inlineMode = true;

0 commit comments

Comments
 (0)