From d3dffca118a0ae53cede2a6a2ddc3f9012d8ebc1 Mon Sep 17 00:00:00 2001
From: lhbxs <596850703@qq.com>
Date: Wed, 28 Feb 2024 11:12:40 +0800
Subject: [PATCH] fix: actionBtns not add footer dependencies
---
docs/form-render/index.md | 184 ++++++-------------
packages/form-render/package.json | 2 +-
packages/form-render/src/form-core/index.tsx | 33 ++--
3 files changed, 69 insertions(+), 150 deletions(-)
diff --git a/docs/form-render/index.md b/docs/form-render/index.md
index d17e7539c..39e0ad58e 100644
--- a/docs/form-render/index.md
+++ b/docs/form-render/index.md
@@ -42,146 +42,68 @@ npm i form-render --save
*/
import React from 'react';
import FormRender, { useForm } from 'form-render';
-// import schema from './schema/simple';
-
-
-const schema = {
- type: 'object',
- properties: {
- countryCode: {
- type: 'number',
- placeholder: '区域-目的地',
- widget: 'select',
- width: '50%',
- required: true,
- props: {}
- },
- cityCode: {
- type: 'number',
- placeholder: '区域-城市',
- widget: 'select',
- width: '50%',
- props: {}
- },
- subConfigValue: {
- title: '热门日期',
- type: 'array',
- widget: 'simpleList',
- props: {
- hideCopy: true,
- delConfirmProps: {
- overlayClassName: 'del-confirm-hot-date'
- }
- },
- items: {
- type: 'object',
- properties: {
- date: {
- type: 'range',
- widget: 'dateRange',
- required: true,
- props: {}
- }
- }
- }
- }
- },
- displayType: "row",
- labelWidth: 100,
-};
+import schema from './schema/simple';
export default () => {
const form = useForm();
- const onMount = () => {
- debugger;
- form.setSchemaByPath('countryCode', {
- props: {
- options: [{ value: 1, label: 1}],
- },
- });
- };
-
- const watch = {
- countryCode: (value: string) => {
- // form.setValues({ cityCode: undefined });
- // form.setSchemaByPath('cityCode', {
- // props: {
- // options: cityMap[value].map((item: any) => ({
- // label: item.provinceName,
- // value: item.provinceCode,
- // })),
- // },
- // });
- },
+ const onFinish = (formData) => {
+ console.log('formData:', formData);
};
return (
-
-
-
- )
-}
-// export default () => {
-// const form = useForm();
-
-// const onFinish = (formData) => {
-// console.log('formData:', formData);
-// };
-
-// return (
-// {
-// // '#': () => {} 等同于 onValuesChange
-// // console.log('表单 allValues:', allValues);
-// setTimeout(() => {
-// form.setSchema(
-// {
-// type: "object",
-// displayType: "row",
-// column: 2,
-// properties: {
-// input12: {
-// title: "输入框xxxx",
-// displayType: "row",
-// type: "string",
-// widget: "input",
-// },
-// number12: {
-// title: "数字输入框",
-// type: "number",
-// widget: "inputNumber",
-// },
-// select12: {
-// title: "下啦单选",
-// widget: "select",
-// props: {
-// options: [
-// { label: "东", value: "east" },
-// { label: "西", value: "west" },
-// ],
-// },
-// },
-// },
-// },
-// true
-// );
-// }, 0);
+ {
+ // '#': () => {} 等同于 onValuesChange
+ // console.log('表单 allValues:', allValues);
+ setTimeout(() => {
+ form.setSchema(
+ {
+ type: "object",
+ displayType: "row",
+ column: 2,
+ properties: {
+ input12: {
+ title: "输入框xxxx",
+ displayType: "row",
+ type: "string",
+ widget: "input",
+ },
+ number12: {
+ title: "数字输入框",
+ type: "number",
+ widget: "inputNumber",
+ },
+ select12: {
+ title: "下啦单选",
+ widget: "select",
+ props: {
+ options: [
+ { label: "东", value: "east" },
+ { label: "西", value: "west" },
+ ],
+ },
+ },
+ },
+ },
+ true
+ );
+ }, 0);
-// }
-// }}
-// />
-// );
-// }
+ }
+ }}
+ />
+ );
+}
```
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/packages/form-render/package.json b/packages/form-render/package.json
index 79f2c8791..c0d780ee9 100644
--- a/packages/form-render/package.json
+++ b/packages/form-render/package.json
@@ -1,6 +1,6 @@
{
"name": "form-render",
- "version": "2.4.0",
+ "version": "2.4.1",
"description": "通过 JSON Schema 生成标准 Form,常用于自定义搭建配置界面生成",
"keywords": [
"Form",
diff --git a/packages/form-render/src/form-core/index.tsx b/packages/form-render/src/form-core/index.tsx
index 5c60e97fb..08ec1a470 100644
--- a/packages/form-render/src/form-core/index.tsx
+++ b/packages/form-render/src/form-core/index.tsx
@@ -196,24 +196,21 @@ const FormCore:FC = (props) => {
const operlabelCol = getFormItemLayout(column, {}, { labelWidth })?.labelCol;
- const actionBtns = useMemo(() => {
- const result: React.JSX.Element[] = [];
- if (!footer?.reset?.hide) {
- result.push(
-
- );
- }
- if (!footer?.submit?.hide) {
- result.push(
-
- );
- }
- return result;
- }, []);
+ const actionBtns = [];
+ if (!footer?.reset?.hide) {
+ actionBtns.push(
+
+ );
+ }
+ if (!footer?.submit?.hide) {
+ actionBtns.push(
+
+ );
+ }
return (